WebCore:
[WebKit-https.git] / WebCore / ChangeLog
1 2009-06-09  Jian Li  <jianli@chromium.org>
2
3         Reviewed by David Levin.
4
5         Bug 26196: Fix the problem that worker's importScripts fails if the
6         script URL is redirected from different origin.
7         https://bugs.webkit.org/show_bug.cgi?id=26196
8
9         Test: http/tests/workers/worker-importScripts.html
10
11         The fix is to pass an additional enum parameter to the loader in
12         order to tell it to perform the redirect origin check or not.
13
14         * loader/DocumentThreadableLoader.cpp:
15         (WebCore::DocumentThreadableLoader::create):
16         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
17         (WebCore::DocumentThreadableLoader::willSendRequest):
18         * loader/DocumentThreadableLoader.h:
19         * loader/ThreadableLoader.cpp:
20         (WebCore::ThreadableLoader::create):
21         (WebCore::ThreadableLoader::loadResourceSynchronously):
22         * loader/ThreadableLoader.h:
23         (WebCore::):
24         * loader/WorkerThreadableLoader.cpp:
25         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
26         (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
27         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
28         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
29         * loader/WorkerThreadableLoader.h:
30         (WebCore::WorkerThreadableLoader::create):
31         * workers/WorkerContext.cpp:
32         (WebCore::WorkerContext::importScripts):
33         * xml/XMLHttpRequest.cpp:
34         (WebCore::XMLHttpRequest::loadRequestAsynchronously):
35
36 2009-06-09  Anand K. Mistry  <amistry@google.com>
37
38         Reviewed by Dimitri Glazkov.
39
40         Paint bitmaps with the alpha channel in Skia.
41         https://bugs.webkit.org/show_bug.cgi?id=26037
42
43         Test: fast/canvas/drawImage-with-globalAlpha.html
44
45         * platform/graphics/skia/ImageSkia.cpp:
46         (WebCore::paintSkBitmap):
47         * platform/graphics/skia/PlatformContextSkia.cpp:
48         (PlatformContextSkia::getAlpha):
49         * platform/graphics/skia/PlatformContextSkia.h:
50
51 2009-06-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
52
53         Reviewed by Xan Lopez.
54
55         https://bugs.webkit.org/show_bug.cgi?id=26104
56         [GTK] Make NetworkRequest a proper GObject and expose SoupMessage
57
58         Refactor how SoupMessage is handled, so that our ResourceRequest
59         object doesn't have to store it as a member, which complicates
60         managing ResourceRequest's lifetime.
61
62         * platform/network/soup/ResourceHandleSoup.cpp:
63         (WebCore::ResourceHandle::startHttp):
64         * platform/network/soup/ResourceRequest.h:
65         (WebCore::ResourceRequest::ResourceRequest):
66         (WebCore::ResourceRequest::doUpdatePlatformRequest):
67         (WebCore::ResourceRequest::doUpdateResourceRequest):
68         * platform/network/soup/ResourceRequestSoup.cpp:
69         (WebCore::ResourceRequest::toSoupMessage):
70         (WebCore::ResourceRequest::updateFromSoupMessage):
71
72 2009-06-09  Simon Hausmann  <simon.hausmann@nokia.com>
73
74         Fix the Qt build, the time functions moved into the WTF namespace.
75
76         * bridge/qt/qt_runtime.cpp:
77         (JSC::Bindings::convertValueToQVariant):
78         (JSC::Bindings::convertQVariantToValue):
79
80 2009-06-08  Brady Eidson  <beidson@apple.com>
81
82         Reviewed by Antti Koivisto
83
84         <rdar://problem/6727495> Repro crash in WebCore::Loader::Host::servePendingRequests() and dupes.
85
86         Test: http/tests/loading/deleted-host-in-resource-load-delegate-callback.html
87
88         Loader::Host objects were manually managed via new/delete.
89         There's a variety of circumstances where a Host might've been deleted while it was still in the middle
90         of a resource load delegate callback.
91         Changing them to be RefCounted then adding protectors in the callbacks makes this possibility disappear.
92
93         At the same time, remove ProcessingResource which was an earlier fix for this same problem that wasn't
94         fully implemented.
95
96         * loader/loader.cpp:
97         (WebCore::Loader::Loader):
98         (WebCore::Loader::load):
99         (WebCore::Loader::servePendingRequests):
100         (WebCore::Loader::resumePendingRequests):
101         (WebCore::Loader::cancelRequests):
102         (WebCore::Loader::Host::didFinishLoading):
103         (WebCore::Loader::Host::didFail):
104         (WebCore::Loader::Host::didReceiveResponse):
105         (WebCore::Loader::Host::didReceiveData):
106         * loader/loader.h:
107         (WebCore::Loader::Host::create):
108
109 2009-06-08  Dmitry Titov  <dimich@chromium.org>
110
111         Reviewed by David Levin.
112
113         https://bugs.webkit.org/show_bug.cgi?id=26126
114         Refactor methods of WorkerMessagingProxy used to talk to main-thread loader into new interface.
115
116         Split a couple of methods used to schedule cross-thread tasks between worker thread and loader thread
117         implemented on WorkerMessagingProxy into a separate interface so the loading can be implemented in
118         Chromium's workers.
119
120         No changes in functionality so no tests added.
121
122         * GNUmakefile.am:
123         * WebCore.vcproj/WebCore.vcproj:
124         * WebCore.xcodeproj/project.pbxproj:
125         Added WorkerLoaderProxy.h to the bulid.
126
127         * bindings/js/WorkerScriptController.cpp:
128         (WebCore::WorkerScriptController::evaluate): WorkerThread::workerObjectProxy() now returns & instead of *
129         * bindings/v8/WorkerScriptController.cpp:
130         (WebCore::WorkerScriptController::evaluate): same.
131         * workers/WorkerContext.cpp:
132         (WebCore::WorkerContext::~WorkerContext): same.
133         (WebCore::WorkerContext::reportException): same.
134         (WebCore::WorkerContext::addMessage): same.
135         (WebCore::WorkerContext::postMessage): same.
136
137         * loader/WorkerThreadableLoader.cpp:
138         (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
139         (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
140         (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
141         (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
142         (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
143         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
144         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
145         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
146         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
147         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
148         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation):
149         Use WorkerLoaderProxy instead of WorkerMessagingProxy for the MainThreadBridge.
150         Mostly rename.
151
152         (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
153         In addition to using WorkerLoaderProxy instead of WorkerMessagingProxy, the check for
154         AskedToTerminate is removed. It seems to be an optimization for a very small number of cases
155         when worker termination is requested a very short time before the request to load something
156         (XHR or importScript) was dispatched on the main thread.
157
158         * loader/WorkerThreadableLoader.h:
159         Now keeps a pointer to WorkerLoaderProxy rather then to a WorkerMessagingProxy. This allows
160         to implement WorkerThreadableLoader for Chromium.
161
162         * workers/WorkerLoaderProxy.h: Added.
163         (WebCore::WorkerLoaderProxy::~WorkerLoaderProxy):
164
165         * workers/WorkerMessagingProxy.cpp:
166         (WebCore::WorkerMessagingProxy::startWorkerContext):
167         (WebCore::WorkerMessagingProxy::postTaskToLoader): Added ASSERT since this needs to be implemented for nested workers.
168         * workers/WorkerMessagingProxy.h:
169         Derived from WorkerLoaderProxy, the methods for posting tasks cross-thread are now virtual.
170         Removed unused postTaskToWorkerContext() method.
171
172         * workers/WorkerThread.cpp:
173         (WebCore::WorkerThread::create):
174         (WebCore::WorkerThread::WorkerThread):
175         * workers/WorkerThread.h:
176         (WebCore::WorkerThread::workerLoaderProxy):
177         * workers/WorkerThread.cpp:
178         (WebCore::WorkerThread::create):
179         (WebCore::WorkerThread::WorkerThread):
180         (WebCore::WorkerThread::workerThread):
181         * workers/WorkerThread.h:
182         (WebCore::WorkerThread::workerLoaderProxy):
183         (WebCore::WorkerThread::workerObjectProxy):
184         WorkerThread gets a new member of type WorkerLoaderProxy&, and accessor.
185         Also, existing WorkerObjectProxy* member is now WorkerObjectProxy& because it can't be null.
186
187 2009-06-08  Dimitri Glazkov  <dglazkov@chromium.org>
188
189         Reviewed by Eric Seidel.
190
191         https://bugs.webkit.org/show_bug.cgi?id=26238
192         Add parseDate helper to HTTPParsers, which uses WTF::parseDateFromNullTerminatedCharacters.
193
194         * ForwardingHeaders/runtime/DateMath.h: Removed.
195         * ForwardingHeaders/wtf/DateMath.h: Copied from WebCore/ForwardingHeaders/runtime/DateMath.h.
196         * platform/network/HTTPParsers.cpp:
197         (WebCore::parseDate): Added.
198         * platform/network/HTTPParsers.h:
199         * platform/network/ResourceResponseBase.cpp:
200         (WebCore::parseDateValueInHeader): Changed to use the new helper.
201
202 2009-06-08  Adam Langley  <agl@google.com>
203
204         Reviewed by Eric Siedel.
205
206         Chromium Linux ignored the background color on <select>s. Rather
207         than encode magic colours, we start with a base color (specified
208         via CSS) and derive the other colors from it. Thus, setting the
209         CSS background-color now correctly changes the colour of the
210         control.
211
212         This should not change the appearence controls without
213         background-colors. However, <select>s with a background-color
214         will now renderer correctly, which may require rebaselining
215         pixel tests in the Chromium tree.
216
217         https://bugs.webkit.org/show_bug.cgi?id=26030
218         http://code.google.com/p/chromium/issues/detail?id=12596
219
220         * platform/graphics/Color.cpp:
221         (WebCore::Color::getHSL): new member
222         * platform/graphics/Color.h:
223         * rendering/RenderThemeChromiumLinux.cpp:
224         (WebCore::RenderThemeChromiumLinux::systemColor):
225         (WebCore::brightenColor):
226         (WebCore::paintButtonLike):
227
228 2009-06-08  Victor Wang <victorw@chromium.org>
229
230         Reviewed by Dimitri Glazkov.
231
232         https://bugs.webkit.org/show_bug.cgi?id=26087
233         Bug 26087: Removing element in JS crashes Chrome tab if it fired the change event
234
235         Fix tab crash caused by destroying the popup list that fired the change event on abandon.
236
237         If a popup list is abandoned (press a key to jump to an item
238         and then use tab or mouse to get away from the select box),
239         the current code fires a change event in PopupListBox::updateFromElemt().
240         The JS that listens to this event may destroy the object and cause the
241         rest of popup list code crashes.
242
243         The updateFromElement() is called before abandon() and this causes
244         the selected index to be discarded after updateFromElement(). From
245         the code comments, this appears to be the reason why valueChanged is
246         called in updateFromElement.
247
248         Fix the issue by removing the valueChanged call in updateFromElement,
249         saving the selected index that we should accept on abandon and pass
250         it to the valueChange in abandon().
251
252         A manual test has been added.
253
254         * manual-tests/chromium: Added.
255         * manual-tests/chromium/onchange-reload-popup.html: Added.
256         * platform/chromium/PopupMenuChromium.cpp:
257         (WebCore::PopupListBox::PopupListBox):
258         (WebCore::PopupListBox::handleKeyEvent):
259         (WebCore::PopupListBox::abandon):
260         (WebCore::PopupListBox::updateFromElement):
261
262 2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
263
264         Reviewed by Simon Hausmann.
265
266         [Qt] Disable a few warnings on Windows
267
268         * WebCore.pro:
269
270 2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
271
272         Reviewed by Simon Hausmann.
273
274         [Qt] Don't enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH on Windows
275         
276         This define was brought in after refactoring some code from
277         PluginPackage(Qt|Gtk).cpp into the shared PluginPackage.cpp.
278
279         * WebCore.pro:
280
281 2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
282
283         Reviewed by Simon Hausmann.
284
285         [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build
286
287         * WebCore.pro:
288
289 2009-06-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
290
291         Reviewed by Ariya Hidayat.
292
293         [Qt] Build fix when NETSCAPE_PLUGIN_API support is turned off
294         https://bugs.webkit.org/show_bug.cgi?id=26244
295
296         * WebCore.pro: Define PLUGIN_PACKAGE_SIMPLE_HASH only if
297         NETSCAPE_PLUGIN_API is turned on
298         * plugins/PluginPackage.cpp: Guard initializeBrowserFuncs()
299         * plugins/PluginViewNone.cpp: Match guards with PluginView.h
300
301 2009-06-07  Dan Bernstein  <mitz@apple.com>
302
303         Reviewed by Sam Weinig.
304
305         - fix <rdar://problem/6931661> -[WebView _selectionIsAll] returns YES
306           when the selection is inside a text field.
307
308         * editing/VisibleSelection.cpp:
309         (WebCore::VisibleSelection::isAll): Return false if the selection is in
310         a shadow tree.
311
312 2009-06-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
313
314         Reviewed by Holger Freyther.
315
316         https://bugs.webkit.org/show_bug.cgi?id=26106
317         [GTK] Crashes when you keep a combo open during a page transition, then close it
318
319         Hide the combo popup and disconnect from its signals during
320         PopupMenu destruction to handle this exceptional case with no
321         crash.
322
323         * platform/gtk/PopupMenuGtk.cpp:
324         (WebCore::PopupMenu::~PopupMenu):
325         (WebCore::PopupMenu::menuUnmapped):
326
327 2009-06-06  Sam Weinig  <sam@webkit.org>
328
329         Reviewed by Dan Bernstein.
330
331         Fix for <rdar://problem/6930540>
332         REGRESSION (r43797): Serif and fantasy font-family names are wrong in result of getComputedStyle
333
334         Test: fast/css/font-family-builtins.html
335
336         * css/CSSComputedStyleDeclaration.cpp:
337         (WebCore::identifierForFamily): Fix typo. Fantasy family should be
338         -webkit-fantasy not, -webkit-serif.
339
340 2009-06-06  Sam Weinig  <sam@webkit.org>
341
342         Reviewed by Brady Eidson.
343
344         Fix for <rdar://problem/6936235>
345         Need to support StorageEvent.storageArea to meet the Web Storage spec
346
347         * storage/LocalStorageArea.cpp:
348         (WebCore::LocalStorageArea::dispatchStorageEvent): Pass the localStorage for
349         the frame being dispatched to.
350         * storage/SessionStorageArea.cpp:
351         (WebCore::SessionStorageArea::dispatchStorageEvent): Ditto, only for sessionStorage.
352
353         * storage/StorageEvent.cpp:
354         (WebCore::StorageEvent::StorageEvent):
355         (WebCore::StorageEvent::initStorageEvent):
356         * storage/StorageEvent.h:
357         (WebCore::StorageEvent::create):
358         (WebCore::StorageEvent::storageArea):
359         * storage/StorageEvent.idl:
360         Add storageArea member.
361
362 2009-06-05  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
363
364         Reviewed by Anders Carlsson.
365
366         Fix WMLInputElement initialization code. Don't call initialize() on attach(), let
367         WMLCardElement handle initialization once, after the document has been parsed.
368
369         To keep layout tests working introduce a new function in Document.idl: initializeWMLPageState().
370         WMLTestCase.js (the wml/ layout test framework) will use it to simulate a regular WML document,
371         whose variable state gets initialized on WMLDocument::finishedParsing(). Force initialization
372         of the WML variable state, right after the dynamically created elements have been inserted into the tree.
373
374         * dom/Document.cpp:
375         (WebCore::Document::initializeWMLPageState):
376         * dom/Document.h:
377         * dom/Document.idl:
378         * wml/WMLCardElement.cpp:
379         (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
380         * wml/WMLDocument.cpp:
381         (WebCore::WMLDocument::finishedParsing):
382         (WebCore::WMLDocument::initialize):
383         * wml/WMLDocument.h:
384         * wml/WMLInputElement.cpp:
385         (WebCore::WMLInputElement::initialize):
386         * wml/WMLInputElement.h:
387
388 2009-06-05  Sam Weinig  <sam@webkit.org>
389
390         Reviewed by Anders Carlsson.
391
392         Add ononline and onoffline attributes for the <body> element. 
393
394         * html/HTMLAttributeNames.in: Added ononlineAttr and onofflineAttr.
395         * html/HTMLBodyElement.cpp:
396         (WebCore::HTMLBodyElement::parseMappedAttribute): Map ononlineAttr
397         and onofflineAttr to window event listeners.
398
399 2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
400
401         Reviewed by Simon Hausmann.
402
403         [Qt] Add missing includes of config.h
404
405         * platform/qt/QWebPopup.cpp:
406         * platform/text/qt/TextBreakIteratorQt.cpp:
407
408 2009-06-05  Fumitoshi Ukai  <ukai@google.com>
409
410         Reviewed by Dimitri Glazkov.
411
412         https://bugs.webkit.org/show_bug.cgi?id=26215
413         Try to fix the Chromium build.
414
415         * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
416         (WebCore::fillBMPGlyphs):
417         (WebCore::fillNonBMPGlyphs):
418
419 2009-06-05  Shinichiro Hamaji  <hamaji@chromium.org>
420
421         Bug 26160: Compile fails in MacOSX when GNU fileutils are installed
422
423         <https://bugs.webkit.org/show_bug.cgi?id=26160>
424
425         Reviewed by Alexey Proskuryakov.
426
427         Use /bin/ln instead of ln for cases where this command is used with -h option.
428         As this option is not supported by GNU fileutils, this change helps users 
429         who have GNU fileutils in their PATH.
430
431         * WebCore.xcodeproj/project.pbxproj:
432
433 2009-06-03  Ben Murdoch  <benm@google.com>
434
435         <https://bugs.webkit.org/show_bug.cgi?id=25710> HTML5 Database stops executing transactions if the URL hash changes while a transaction is open and an XHR is in progress.
436
437         Reviewed by Alexey Proskuryakov.
438
439         Fix a bug that causes database transactions to fail if a history navigation to a hash fragment of the same document is made while resources (e.g. an XHR) are loading
440
441         Test: storage/hash-change-with-xhr.html
442
443         * loader/DocumentLoader.cpp:
444         (WebCore::DocumentLoader::stopLoading):
445         * loader/DocumentLoader.h:
446         * loader/FrameLoader.cpp:
447         (WebCore::FrameLoader::stopLoading):
448         (WebCore::FrameLoader::stopAllLoaders):
449         * loader/FrameLoader.h:
450         * loader/FrameLoaderTypes.h:
451         (WebCore::):
452         * page/Page.cpp:
453         (WebCore::Page::goToItem):
454         * WebCore.base.exp:
455
456 2009-06-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
457
458         Reviewed by Simon Hausmann.
459
460         [Qt] Make sure the correct config.h is included when shadowbuilding
461
462         * WebCore.pro:
463
464 2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
465
466         Reviewed by Simon Hausmann.
467
468         Fix Qt build after r44452
469
470         * platform/network/qt/QNetworkReplyHandler.cpp:
471         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
472
473 2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
474
475         Reviewed by Simon Hausmann.
476
477         [Qt] Remove some dead code (MenuEventProxy)
478
479         * WebCore.pro:
480         * platform/ContextMenu.h:
481         * platform/qt/ContextMenuQt.cpp:
482         * platform/qt/MenuEventProxy.h: Removed.
483
484 2009-06-05  Xan Lopez  <xlopez@igalia.com>
485
486         More build fixes.
487
488         * platform/graphics/gtk/GlyphPageTreeNodePango.cpp:
489         (WebCore::GlyphPage::fill):
490
491 2009-06-05  Xan Lopez  <xlopez@igalia.com>
492
493         Fix the GTK+ build.
494
495         * GNUmakefile.am:
496         * platform/graphics/gtk/FontCacheGtk.cpp:
497         (WebCore::FontCache::getFontDataForCharacters):
498         * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
499         (WebCore::GlyphPage::fill):
500
501 2009-06-05  Antti Koivisto  <antti@apple.com>
502
503         Try to fix Windows (and possibly other platforms) build.
504
505         Restore ResourceResponseBase::lastModifiedDate() and setLastModifiedDate() removed in previous commit.
506         for now since PluginStream used on some platforms expects them and calculations differ from plain 
507         Last-modified header value.
508         
509         Also include <wtf/MathExtras.h> to get isfinite().
510
511         * platform/network/ResourceResponseBase.cpp:
512         (WebCore::ResourceResponseBase::adopt):
513         (WebCore::ResourceResponseBase::copyData):
514         (WebCore::ResourceResponseBase::setLastModifiedDate):
515         (WebCore::ResourceResponseBase::lastModifiedDate):
516         * platform/network/ResourceResponseBase.h:
517         * platform/network/cf/ResourceResponseCFNet.cpp:
518         (WebCore::ResourceResponse::platformLazyInit):
519
520 2009-06-03  Antti Koivisto  <antti@apple.com>
521
522         Reviewed by Dave Kilzer.
523
524         https://bugs.webkit.org/show_bug.cgi?id=13128
525         Safari not obeying cache header
526         
527         Implement RFC 2616 cache expiration calculations in WebKit instead of
528         relying on the networking layer.
529
530         * ForwardingHeaders/runtime/DateMath.h: Added.
531         * WebCore.base.exp:
532         * loader/Cache.cpp:
533         (WebCore::Cache::revalidationSucceeded):
534         * loader/CachedResource.cpp:
535         (WebCore::CachedResource::CachedResource):
536         (WebCore::CachedResource::isExpired):
537         (WebCore::CachedResource::currentAge):
538         (WebCore::CachedResource::freshnessLifetime):
539         (WebCore::CachedResource::setResponse):
540         (WebCore::CachedResource::updateResponseAfterRevalidation):
541         (WebCore::CachedResource::mustRevalidate):
542         * loader/CachedResource.h:
543         * platform/network/ResourceResponseBase.cpp:
544         (WebCore::ResourceResponseBase::ResourceResponseBase):
545         (WebCore::ResourceResponseBase::adopt):
546         (WebCore::ResourceResponseBase::copyData):
547         (WebCore::ResourceResponseBase::setHTTPHeaderField):
548         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
549         (WebCore::ResourceResponseBase::cacheControlContainsNoCache):
550         (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate):
551         (WebCore::ResourceResponseBase::cacheControlMaxAge):
552         (WebCore::parseDateValueInHeader):
553         (WebCore::ResourceResponseBase::date):
554         (WebCore::ResourceResponseBase::age):
555         (WebCore::ResourceResponseBase::expires):
556         (WebCore::ResourceResponseBase::lastModified):
557         (WebCore::ResourceResponseBase::isAttachment):
558         (WebCore::ResourceResponseBase::compare):
559         * platform/network/ResourceResponseBase.h:
560         * platform/network/cf/ResourceResponseCFNet.cpp:
561         (WebCore::ResourceResponse::platformLazyInit):
562         * platform/network/mac/ResourceResponseMac.mm:
563         (WebCore::ResourceResponse::platformLazyInit):
564
565 2009-06-04  Roland Steiner <rolandsteiner@google.com>
566
567         Reviewed by Eric Seidel.
568
569         Bug 26201: Remove superfluous 'if' statements in RenderTable::addChild
570         https://bugs.webkit.org/show_bug.cgi?id=26201
571
572         * rendering/RenderTable.cpp:
573         (WebCore::RenderTable::addChild): remove superfluous 'if' statements
574        
575
576 2009-06-04  Roland Steiner <rolandsteiner@google.com>
577
578         Reviewed by Eric Seidel.
579
580         Bug 26202: add macros for primitive values to simplify CSSStyleSelector::applyProperty
581         https://bugs.webkit.org/show_bug.cgi?id=26202
582
583         * css/CSSStyleSelector.cpp: add HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE[_WITH_VALUE] macros
584         (WebCore::CSSStyleSelector::applyProperty): use new macros
585
586 2009-06-04  Roland Steiner <rolandsteiner@google.com>
587
588         Reviewed by Eric Seidel
589
590         Bug 26203: Move parsing of 'attr(X)' values to own method
591         https://bugs.webkit.org/show_bug.cgi?id=26203
592
593         * css/CSSParser.cpp:
594         (WebCore::CSSParser::parseAttr): new method
595         (WebCore::CSSParser::parseContent): use new parseAttr method
596         * css/CSSParser.h:
597         (WebCore::CSSParser::parseAttr): new method
598
599 2009-06-04  Roland Steiner <rolandsteiner@google.com>
600
601         Reviewed by Eric Seidel.
602
603         Bug 26205: RenderTableSection::addChild : correct comment
604         https://bugs.webkit.org/show_bug.cgi?id=26205
605
606         * rendering/RenderTableSection.cpp:
607         (WebCore::RenderTableSection::addChild): correct comment
608
609 2009-06-04  Roland Steiner <rolandsteiner@google.com>
610
611         Reviewed by Eric Seidel.
612
613         Bug 26204: RenderBlock : simplify handleSpecialChild, comment correction
614         https://bugs.webkit.org/show_bug.cgi?id=26204
615
616         * rendering/RenderBlock.cpp:
617         (WebCore::RenderBlock::handleSpecialChild): simplify usage
618         (WebCore::RenderBlock::handlePositionedChild): simplify usage
619         (WebCore::RenderBlock::handleFloatingChild): simplify usage
620         (WebCore::RenderBlock::handleRunInChild): simplify usage
621         (WebCore::RenderBlock::layoutBlock): correct comment
622         (WebCore::RenderBlock::layoutBlockChildren): simplify loop, change call to handleSpecialChild
623         * rendering/RenderBlock.h: 
624         (WebCore::RenderBlock::handleSpecialChild): change signature
625         (WebCore::RenderBlock::handlePositionedChild): change signature
626         (WebCore::RenderBlock::handleFloatingChild): change signature
627         (WebCore::RenderBlock::handleRunInChild): change signature
628
629 2009-06-04  Dan Bernstein  <mitz@apple.com>
630
631         - retry to fix the Tiger build
632
633         * platform/graphics/mac/SimpleFontDataMac.mm:
634         (WebCore::initFontData):
635
636 2009-06-04  Dan Bernstein  <mitz@apple.com>
637
638         - try to fix the Tiger build
639
640         * platform/graphics/SimpleFontData.h:
641
642 2009-06-04  Dan Bernstein  <mitz@apple.com>
643
644         - try to fix the Leopard and Tiger builds
645
646         * platform/graphics/SimpleFontData.h:
647
648 2009-06-04  Dan Bernstein  <mitz@apple.com>
649
650         - try to fix the Windows build
651
652         * platform/graphics/win/UniscribeController.cpp:
653         (WebCore::UniscribeController::shapeAndPlaceItem):
654
655 2009-06-04  Dan Bernstein  <mitz@apple.com>
656
657         Reviewed by Sam Weinig.
658
659         - make SimpleFontData's data members private
660         - rename SimpleFontData's m_font member to m_platformData
661
662         * platform/graphics/Font.h:
663         (WebCore::Font::spaceWidth):
664         * platform/graphics/SimpleFontData.cpp:
665         (WebCore::SimpleFontData::SimpleFontData):
666         * platform/graphics/SimpleFontData.h:
667         (WebCore::SimpleFontData::platformData):
668         (WebCore::SimpleFontData::spaceWidth):
669         (WebCore::SimpleFontData::adjustedSpaceWidth):
670         (WebCore::SimpleFontData::syntheticBoldOffset):
671         (WebCore::SimpleFontData::spaceGlyph):
672         (WebCore::SimpleFontData::getNSFont):
673         (WebCore::SimpleFontData::getQtFont):
674         (WebCore::SimpleFontData::getWxFont):
675         * platform/graphics/WidthIterator.cpp:
676         (WebCore::WidthIterator::advance):
677         * platform/graphics/cairo/FontCairo.cpp:
678         (WebCore::Font::drawGlyphs):
679         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
680         (WebCore::SimpleFontData::platformInit):
681         (WebCore::SimpleFontData::smallCapsFontData):
682         (WebCore::SimpleFontData::determinePitch):
683         (WebCore::SimpleFontData::platformWidthForGlyph):
684         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
685         (WebCore::SimpleFontData::platformInit):
686         (WebCore::SimpleFontData::smallCapsFontData):
687         (WebCore::SimpleFontData::containsCharacters):
688         (WebCore::SimpleFontData::platformWidthForGlyph):
689         * platform/graphics/gtk/FontGtk.cpp:
690         (WebCore::setPangoAttributes):
691         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
692         (WebCore::SimpleFontData::platformInit):
693         (WebCore::SimpleFontData::containsCharacters):
694         (WebCore::SimpleFontData::determinePitch):
695         (WebCore::SimpleFontData::platformWidthForGlyph):
696         (WebCore::SimpleFontData::setFont):
697         * platform/graphics/gtk/SimpleFontDataPango.cpp:
698         (WebCore::SimpleFontData::platformInit):
699         (WebCore::SimpleFontData::containsCharacters):
700         (WebCore::SimpleFontData::determinePitch):
701         (WebCore::SimpleFontData::platformWidthForGlyph):
702         (WebCore::SimpleFontData::setFont):
703         * platform/graphics/mac/CoreTextController.cpp:
704         (WebCore::CoreTextController::adjustGlyphsAndAdvances):
705         * platform/graphics/mac/FontMac.mm:
706         (WebCore::Font::drawGlyphs):
707         * platform/graphics/mac/FontMacATSUI.mm:
708         (WebCore::initializeATSUStyle):
709         (WebCore::overrideLayoutOperation):
710         (WebCore::ATSULayoutParameters::initialize):
711         * platform/graphics/mac/SimpleFontDataMac.mm:
712         (WebCore::initFontData):
713         (WebCore::SimpleFontData::platformInit):
714         (WebCore::SimpleFontData::platformCharWidthInit):
715         (WebCore::SimpleFontData::smallCapsFontData):
716         (WebCore::SimpleFontData::containsCharacters):
717         (WebCore::SimpleFontData::determinePitch):
718         (WebCore::SimpleFontData::platformWidthForGlyph):
719         (WebCore::SimpleFontData::checkShapesArabic):
720         (WebCore::SimpleFontData::getCTFont):
721         * platform/graphics/qt/SimpleFontDataQt.cpp:
722         (WebCore::SimpleFontData::determinePitch):
723         (WebCore::SimpleFontData::platformInit):
724         (WebCore::SimpleFontData::platformCharWidthInit):
725         * platform/graphics/win/FontCGWin.cpp:
726         (WebCore::drawGDIGlyphs):
727         (WebCore::Font::drawGlyphs):
728         * platform/graphics/win/SimpleFontDataCGWin.cpp:
729         (WebCore::SimpleFontData::platformInit):
730         (WebCore::SimpleFontData::platformCharWidthInit):
731         (WebCore::SimpleFontData::platformWidthForGlyph):
732         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
733         (WebCore::SimpleFontData::platformInit):
734         (WebCore::SimpleFontData::platformDestroy):
735         (WebCore::SimpleFontData::platformWidthForGlyph):
736         (WebCore::SimpleFontData::setFont):
737         * platform/graphics/win/SimpleFontDataWin.cpp:
738         (WebCore::SimpleFontData::initGDIFont):
739         (WebCore::SimpleFontData::smallCapsFontData):
740         (WebCore::SimpleFontData::containsCharacters):
741         (WebCore::SimpleFontData::determinePitch):
742         (WebCore::SimpleFontData::widthForGDIGlyph):
743         (WebCore::SimpleFontData::scriptFontProperties):
744         * platform/graphics/wx/SimpleFontDataWx.cpp:
745         (WebCore::SimpleFontData::platformInit):
746         (WebCore::SimpleFontData::determinePitch):
747         (WebCore::SimpleFontData::platformWidthForGlyph):
748
749 2009-06-04  Paul Godavari  <paul@chromium.org>
750
751         Reviewed by Eric Seidel.
752
753         Initialize the width of PopupMenuListBox properly for Mac Chromium.
754
755         Added a test that works only with this patch applied. The test is
756         a manual one, since the hit testing infrastructure in the layout
757         tests sends keyboard and mouse events to the main window and not
758         the cocoa control that implements the popup up, which means we can't
759         select items from the popup up.
760
761         https://bugs.webkit.org/show_bug.cgi?id=25904
762
763
764         * manual-tests/select-narrow-width.html: Added.
765         * platform/chromium/PopupMenuChromium.cpp:
766         (WebCore::PopupListBox::PopupListBox):
767         (WebCore::PopupContainer::showExternal):
768
769 2009-06-04  Brent Fulgham  <bfulgham@webkit.org>
770
771         Unreviewed Windows build correction.
772
773         * WebCore.vcproj/WebCore.vcproj: Add missing 'ReplaceNodeWithSpanCommand.cpp'
774           and 'ReplaceNodeWithSpanCommand.h'
775
776 2009-02-03  Eric Seidel  <eric@webkit.org>
777
778         Reviewed by Justin Garcia.
779
780         Make sure execCommand("bold") on <b style="text-decoration: underline">test</b>
781         only removes the bold and not the underline.
782         https://bugs.webkit.org/show_bug.cgi?id=23496
783
784         Test: editing/execCommand/convert-style-elements-to-spans.html
785
786         * WebCore.xcodeproj/project.pbxproj:
787         * css/CSSStyleDeclaration.h:
788         (WebCore::CSSStyleDeclaration::isEmpty):
789         * dom/NamedAttrMap.h:
790         (WebCore::NamedAttrMap::isEmpty):
791         * editing/ApplyStyleCommand.cpp:
792         (WebCore::isUnstyledStyleSpan):
793         (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan):
794         (WebCore::ApplyStyleCommand::applyBlockStyle):
795         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
796         (WebCore::ApplyStyleCommand::implicitlyStyledElementShouldBeRemovedWhenApplyingStyle):
797         (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes):
798         (WebCore::ApplyStyleCommand::removeCSSStyle):
799         (WebCore::ApplyStyleCommand::applyTextDecorationStyle):
800         (WebCore::ApplyStyleCommand::removeInlineStyle):
801         (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
802         * editing/ApplyStyleCommand.h:
803         * editing/CompositeEditCommand.cpp:
804         (WebCore::CompositeEditCommand::replaceNodeWithSpanPreservingChildrenAndAttributes):
805         * editing/CompositeEditCommand.h:
806         * editing/RemoveNodePreservingChildrenCommand.cpp:
807         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
808         * editing/ReplaceNodeWithSpanCommand.cpp: Added.
809         (WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand):
810         (WebCore::swapInNodePreservingAttributesAndChildren):
811         (WebCore::ReplaceNodeWithSpanCommand::doApply):
812         (WebCore::ReplaceNodeWithSpanCommand::doUnapply):
813         * editing/ReplaceNodeWithSpanCommand.h: Added.
814         (WebCore::ReplaceNodeWithSpanCommand::create):
815
816 2009-06-04  Brent Fulgham  <bfulgham@webkit.org>
817
818         Unreviewed build fix for Windows Cairo target.
819
820         Add missing post-build command to copy history/cf contents
821         to output directory.
822
823         * WebCore.vcproj/WebCore.vcproj: Update Debug_Cairo and Release_Cairo
824           target post-build steps with copy commands.
825
826 2009-06-04  Pierre d'Herbemont  <pdherbemont@apple.com>
827
828         Reviewed by Simon Fraser.
829
830         <rdar://problem/6854695> Movie controller thumb fails to scale with full page zoom
831         
832         Account for zoom level when drawing media controller thumb on Windows.
833
834         * rendering/RenderMediaControls.cpp:
835         (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):
836
837 2009-06-04  David Hyatt  <hyatt@apple.com>
838
839         Reviewed by Sam Weinig.
840
841         Move DOM window focus/blur out of SelectionController and into FocusController.  Make sure it
842         fires on the focused frame when the page activation state changes also.  This is covered by an existing
843         layout test (albeit badly).  I have modified the test to be correct.
844
845         * editing/SelectionController.cpp:
846         (WebCore::SelectionController::setFocused):
847         * page/FocusController.cpp:
848         (WebCore::FocusController::setFocusedFrame):
849         (WebCore::FocusController::setActive):
850
851 2009-06-04  Albert J. Wong  <ajwong@chromium.org>
852
853         Reviewed by Eric Seidel.
854
855         https://bugs.webkit.org/show_bug.cgi?id=26148
856         Adding in empty files to stage the extract of RenderThemeChromiumSkia
857         from RenderThemeChromiumLinux and RenderThemeChromiumWindows.
858
859         * rendering/RenderThemeChromiumSkia.cpp: Added.
860         * rendering/RenderThemeChromiumSkia.h: Added.
861
862 2009-06-04  Andrei Popescu <andreip@google.com>
863
864         Reviewed by Alexey Proskuryakov.
865
866         https://bugs.webkit.org/show_bug.cgi?id=25562
867         Potential crash after ApplicationCacheStorage::storeNewestCache() fails
868
869               Fix the crash by checking the return value of cacheStorage().storeNewestCache(this)
870               in WebCore::ApplicationCacheGroup::checkIfLoadIsComplete. If storeNewestCache failed,
871               we run the cache failure steps:
872
873         1. Fire the error events to all pending master entries, as well any other cache hosts
874            currently associated with a cache in this group.
875         2. Disassociate the pending master entries from the failed new cache.
876         3. Reinstate the old "newest cache", if there was one.
877
878         We also introduce two other changes:
879
880         1. a mechanism to rollback storageID changes to the in-memory resource
881            objects when the storing of an ApplicationCache object fails.
882
883         2. defer removing the pending master entries from the list of pending master entries
884            until the entire load is complete. This matches the HTML 5 spec better. To track
885            if the load is complete we now introduce a counter for those pending master entries
886            that haven't yet finshed downloading.
887
888         * loader/appcache/ApplicationCacheGroup.cpp:
889         (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): initializes the new counter to 0
890         (WebCore::ApplicationCacheGroup::selectCache): increments the counter when a new pending
891         master entry is added.
892         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): decrements the counter
893         instead of removing the pending master entry.
894         (WebCore::ApplicationCacheGroup::failedLoadingMainResource): decrements the counter
895         instead of removing the pending master entry.
896         (WebCore::ApplicationCacheGroup::setNewestCache): removes an assertion that no longer
897         holds true. In particular, the newest cache is not necessarily new anymore. We can
898         set an old cache as the new cache. This can happen if we failed to store a newly
899         downloaded cache to the database and we are now reinstating the former newest cache.
900         (WebCore::ApplicationCacheGroup::manifestNotFound): resets the counter to 0.
901         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): check if the loading is complete
902         based on the counter instead of the list of pending master entries. Empty the list of
903         master entries if the load is complete.
904         * loader/appcache/ApplicationCacheGroup.h: add the new counter.
905         * loader/appcache/ApplicationCacheStorage.cpp: introduce the journaling mechanism for
906         in-memory resource objects.
907         (WebCore::ResourceStorageIDJournal::~ResourceStorageIDJournal):
908         (WebCore::ResourceStorageIDJournal::add):
909         (WebCore::ResourceStorageIDJournal::commit):
910         (WebCore::ResourceStorageIDJournal::Record::Record):
911         (WebCore::ResourceStorageIDJournal::Record::restore):
912         (WebCore::ApplicationCacheStorage::store): log the changes to the in-memory resource
913         objects.
914         (WebCore::ApplicationCacheStorage::storeNewestCache): create the journal object.
915         * loader/appcache/ApplicationCacheStorage.h:  modify the signature of
916         bool store(ApplicationCache*) to add a pointer to the logger object used to
917         trace the changes to the storageID of the resource objects.
918
919 2009-06-04  Jeremy Orlow  <jorlow@chromium.org>
920
921         Reviewed by Darin Adler.
922
923         https://bugs.webkit.org/show_bug.cgi?id=26154
924         Allow underscores in the hostnames we parse out of databaseIdentifiers.
925         This code is used for HTML 5 database support.
926
927         * page/SecurityOrigin.cpp:
928         (WebCore::SecurityOrigin::createFromDatabaseIdentifier):
929
930 2009-06-04  Mihnea Ovidenie  <mihnea@adobe.com>
931
932         Reviewed by Darin Adler.
933
934         Bug 26084: Multiple missing images in webkit-mask-image prevent rendering
935         https://bugs.webkit.org/show_bug.cgi?id=26084
936
937         When painting multiple images, make sure that at least one image is valid before pushing a transparency layer.
938
939         Added a manual test.
940
941         * manual-tests/mask-composite-missing-images.html: Added.
942         * rendering/RenderBox.cpp:
943         (WebCore::RenderBox::paintMaskImages):
944
945 2009-06-04  Jeremy Orlow  <jorlow@chromium.org>
946
947         Reviewed by Darin Adler.
948
949         https://bugs.webkit.org/show_bug.cgi?id=26180
950         Add a fast path for SecurityOrigin::equal. If "other == this" (where
951         other is the other security origin), then we really don't need to do
952         all the other (expensive) comparisons. We know it's equal.
953
954         * page/SecurityOrigin.cpp:
955         (WebCore::SecurityOrigin::equal):
956
957 2009-06-03  David Hyatt  <hyatt@apple.com>
958
959         Reviewed by Sam Weinig.
960
961         Improvements in how selection behaves with focus/activation and a reversion back to using isActive
962         in the scrollbar theme code to remove a Chromium ifdef.
963
964         * editing/SelectionController.cpp:
965         (WebCore::SelectionController::SelectionController):
966         Make the controller set its focused state correctly upon initial creation.
967
968         (WebCore::SelectionController::setSelection):
969         Make selection willing to shift the focus node if the selection is focused even if the
970         selection is not active.  Whether or not the Page is active is irrelevant to focus changes.
971
972         (WebCore::SelectionController::setFocused):
973         * editing/SelectionController.h:
974         (WebCore::SelectionController::isFocused):
975         Add a new isFocused() method so that code can check if the Selection is focused without caring
976         about the active state.
977
978         * page/Frame.cpp:
979         (WebCore::Frame::setFocusedNodeIfNeeded):
980         Allow focus shifts even when the selection is not active.
981
982         * platform/mac/ScrollbarThemeMac.mm:
983         (WebCore::ScrollbarThemeMac::paint):
984         Revert Dan's change to directly talk to AppKit for checking active state.  Now that the WebCore isActive
985         method works, ditch the Chromium-specific #ifdef and go back to the original code.
986
987 2009-06-04  Pierre d'Herbemont  <pdherbemont@apple.com>
988
989         Reviewed by Darin Adler.
990
991         Test: media/before-load-member-access.html
992         
993         https://bugs.webkit.org/show_bug.cgi?id=26081
994
995         * html/HTMLMediaElement.cpp:
996         (WebCore::HTMLMediaElement::played): Ensure that if m_playedTimeRanges,
997         is not initialized we return a valid range, and don't attempt to use it.
998
999 2009-06-03  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
1000
1001         Reviewed by Simon Hausmann.
1002
1003         Implement a way to invalidate the FontCache used by the Qt port.
1004
1005         * platform/graphics/qt/FontCacheQt.cpp:
1006         (WebCore::FontCache::invalidate):
1007
1008 2009-06-04  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
1009
1010         Reviewed by Ariya Hidayat.
1011
1012         https://bugs.webkit.org/show_bug.cgi?id=26015
1013
1014         [Qt] Single-threaded QtWebKit configuration
1015
1016         Turn off Database, DOM storage, icon database and Web Workers support
1017         when ENABLE_SINGLE_THREADED is turned on.
1018
1019         Set SQLITE_THREADSAFE to false to turn off SQLite mutexes
1020         when ENABLE_SINGLE_THREADED is turned on.
1021
1022         * WebCore.pro:
1023
1024 2009-06-03  Dan Bernstein  <mitz@apple.com>
1025
1026         Reviewed by Sam Weinig.
1027
1028         - add some assertions that Font methods are used on the main thread
1029
1030         * platform/graphics/Font.cpp:
1031         (WebCore::Font::setShouldUseSmoothing):
1032         * platform/graphics/Font.h:
1033         (WebCore::Font::primaryFont):
1034         * platform/graphics/FontFastPath.cpp:
1035         (WebCore::Font::glyphDataForCharacter):
1036
1037 2009-06-03  Dan Bernstein  <mitz@apple.com>
1038
1039         - Windows build fix
1040
1041         Rolled out apparently-accidental changes to config.h from r44398. These
1042         were not part of the patch as reviewed.
1043
1044         * config.h:
1045
1046 2009-06-03  Dmitry Titov  <dimich@chromium.org>
1047
1048         Not reviewed, Chromium build fix.
1049
1050         https://bugs.webkit.org/show_bug.cgi?id=26177
1051         Reverting 'private' to 'protected' on 2 classes.
1052         Chromium glue layer (not yet in Webkit tree) relies on ability to derive
1053         Chromium-specific platform classes and access the data members.
1054         See bug for more details.
1055
1056         * platform/PlatformMouseEvent.h:
1057         * platform/PlatformWheelEvent.h:
1058
1059 2009-06-03  Chris Marrin  <cmarrin@apple.com>
1060
1061         Reviewed by Simon Fraser <simonfr@apple.com>.
1062
1063         Fixed https://bugs.webkit.org/show_bug.cgi?id=26162
1064
1065         This corrects an error when destroying an animation
1066         or transition where endAnimation was never getting
1067         called and therefore the hardware animation was never
1068         getting removed.
1069
1070         This includes a manual-test since it's really impossible
1071         to make a meaningful automatic test for an animation
1072         bug like this.
1073
1074         This has no effect unless accelerated compositing is 
1075         enabled.
1076
1077         * manual-tests/interrupted-compound-transform.html: Added.
1078         * page/animation/ImplicitAnimation.cpp:
1079         (WebCore::ImplicitAnimation::~ImplicitAnimation):
1080         * page/animation/KeyframeAnimation.cpp:
1081         (WebCore::KeyframeAnimation::~KeyframeAnimation):
1082
1083 2009-06-03  Adam Langley  <agl@google.com>
1084
1085         Reviewed by Eric Seidel.
1086
1087         Make the scrollbar thumb size twice the width for Chromium Linux. This
1088         matches Firefox on Linux.
1089
1090         This will need layout test pixel results to be rebaselined in the
1091         Chromium tree.
1092
1093         http://code.google.com/p/chromium/issues/detail?id=12602
1094         https://bugs.webkit.org/show_bug.cgi?id=26176
1095
1096         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
1097         (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
1098         * platform/chromium/ScrollbarThemeChromiumLinux.h:
1099
1100 2009-06-03  Adam Langley  <agl@google.com>
1101
1102         Reviewed by Eric Seidel.
1103
1104         Change Chromium scrollbar theme code to use different classes on
1105         Windows and Linux rather than suppling symbols. The ScrollbarTheme
1106         class is already using virtual dispatch, so there's no reason not to.
1107
1108         This should not affect any layout tests.
1109
1110         https://bugs.webkit.org/show_bug.cgi?id=26174
1111
1112         * platform/chromium/ScrollbarThemeChromium.cpp:
1113         * platform/chromium/ScrollbarThemeChromium.h:
1114         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
1115         (WebCore::ScrollbarTheme::nativeTheme):
1116         (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
1117         (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
1118         (WebCore::ScrollbarThemeChromiumLinux::paintButton):
1119         (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
1120         (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
1121         * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
1122         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
1123         (WebCore::ScrollbarTheme::nativeTheme):
1124         (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
1125         (WebCore::ScrollbarThemeChromiumWin::invalidateOnMouseEnterExit):
1126         (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
1127         (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
1128         (WebCore::ScrollbarThemeChromiumWin::paintButton):
1129         (WebCore::ScrollbarThemeChromiumWin::paintThumb):
1130         (WebCore::ScrollbarThemeChromiumWin::getThemeState):
1131         (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
1132         (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
1133         (WebCore::ScrollbarThemeChromiumWin::buttonSize):
1134         * platform/chromium/ScrollbarThemeChromiumWin.h: Added.
1135
1136 2009-06-03  Pavel Feldman  <pfeldman@chromium.org>
1137
1138         Reviewed by Timothy Hatcher.
1139
1140         Enabling debugger requires that Scripts panel is already attached to the
1141         render tree. The reason is that recompile events result in script sources
1142         being added into the source frames. Prior to the global options introduced,
1143         debugger was enabled from the Scripts panel, so that it was guaranteed to
1144         exist. The InspectorController::enableDebugger API calls with no inspector
1145         frontend showing were failing though.
1146
1147         https://bugs.webkit.org/show_bug.cgi?id=26145
1148
1149         * WebCore.base.exp:
1150         * inspector/InspectorController.cpp:
1151         (WebCore::InspectorController::setWindowVisible):
1152         (WebCore::InspectorController::scriptObjectReady):
1153         (WebCore::InspectorController::enableDebuggerFromFrontend):
1154         (WebCore::InspectorController::enableDebugger):
1155         * inspector/InspectorController.h:
1156         * inspector/InspectorController.idl:
1157         * inspector/InspectorFrontend.cpp:
1158         (WebCore::InspectorFrontend::attachDebuggerWhenShown):
1159         * inspector/InspectorFrontend.h:
1160         * inspector/front-end/ScriptsPanel.js:
1161         (WebInspector.ScriptsPanel.prototype.show):
1162         (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown):
1163         * inspector/front-end/inspector.js:
1164         (WebInspector.attachDebuggerWhenShown):
1165
1166 2009-06-03  Dan Bernstein  <mitz@apple.com>
1167
1168         Reviewed by Anders Carlsson.
1169
1170         - fix a regression from the previous patch
1171
1172         * platform/graphics/Font.cpp: Initialize shouldUseFontSmoothing to true.
1173
1174 2009-06-03  Dan Bernstein  <mitz@apple.com>
1175
1176         Reviewed by Anders Carlsson.
1177
1178         - eliminate WebCoreTextRenderer
1179
1180         * WebCore.base.exp: Updated.
1181         * WebCore.xcodeproj/project.pbxproj: Removed WebCoreTextRenderer.{h,mm}
1182             and promoted WebFontCache.h to private.
1183         * platform/graphics/Font.cpp:
1184         (WebCore::Font::setShouldUseSmoothing): Added this static setter for
1185             a new file-static boolean.
1186         (WebCore::Font::shouldUseSmoothing): Added this static getter.
1187         * platform/graphics/Font.h: Decleared setShouldUseSmoothing() and
1188             shouldUseSmoothing().
1189         * platform/graphics/mac/FontMac.mm:
1190         (WebCore::Font::drawGlyphs): Use Font::shouldUseSmoothing() instead of
1191         WebCoreShouldUseFontSmoothing().
1192         * platform/graphics/mac/WebLayer.mm: Removed unneeded #import.
1193         * platform/mac/WebCoreTextRenderer.h: Removed.
1194         * platform/mac/WebCoreTextRenderer.mm: Removed.
1195
1196 2009-06-03  David Levin  <levin@chromium.org>
1197
1198         Reviewed by Dimitri Glazkov.
1199
1200         v8's ScriptController::evaluate should protect the Frame like the jsc version.
1201         https://bugs.webkit.org/show_bug.cgi?id=26172
1202
1203         This change is simply copying protections done for Frame in the method
1204         WebCore::ScriptController::evaluate in the file js/ScriptController.cpp.
1205
1206         * bindings/v8/ScriptController.cpp:
1207         (WebCore::ScriptController::evaluate):
1208
1209 2009-06-03  Dan Bernstein  <mitz@apple.com>
1210
1211         Reviewed by John Sullivan.
1212
1213         - fix <rdar://problem/6841120> Use CTFontManager notifications instead
1214           of ATS notifications
1215
1216         * platform/graphics/FontCache.h: Made it an error to destroy a
1217         FontCache instance.
1218         * platform/graphics/mac/FontCacheMac.mm:
1219         (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Added
1220         this notification callback for the
1221         kCTFontManagerRegisteredFontsChangedNotification, which calls
1222         invalidate().
1223         (WebCore::FontCache::platformInit): Register for
1224         kCTFontManagerRegisteredFontsChangedNotification.
1225
1226 2009-06-03  Kevin Watters  <kevinwatters@gmail.com>
1227
1228         Reviewed by Kevin Ollivier.
1229
1230         Use CGContextShowGlyphsWithAdvances to get more accurate text rendering on Mac.
1231         
1232         https://bugs.webkit.org/show_bug.cgi?id=26161
1233
1234         * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp:
1235         (WebCore::drawTextWithSpacing):
1236
1237 2009-06-03  Pavel Feldman  <pfeldman@chromium.org>
1238
1239         Reviewed by Timothy Hatcher.
1240
1241         Reorder ResourcesPanel components initialization to unfreeze resource list scroller.
1242
1243         https://bugs.webkit.org/show_bug.cgi?id=26159
1244
1245         * inspector/front-end/ResourcesPanel.js:
1246         (WebInspector.ResourcesPanel):
1247
1248 2009-06-03  Pavel Feldman  <pfeldman@chromium.org>
1249
1250         Reviewed by Timothy Hatcher.
1251
1252         - Fix for crash (preceded by assertion) in InspectorController::didCommitLoad
1253           when reloading or navigating with the Inspector open.
1254         - Fix for Inspector's Elements panel being empty when Inspector first appears.
1255
1256         https://bugs.webkit.org/show_bug.cgi?id=26134
1257         https://bugs.webkit.org/show_bug.cgi?id=26135
1258
1259         * inspector/InspectorController.cpp:
1260         (WebCore::InspectorController::scriptObjectReady):
1261         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
1262         (WebCore::InspectorController::identifierForInitialRequest):
1263         (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded):
1264         * inspector/InspectorController.h:
1265
1266 2009-06-03  Adam Roben  <aroben@apple.com>
1267
1268         Windows build fix after r44379
1269
1270         * svg/graphics/SVGImage.cpp: Move EmptyClients.h back down below the
1271         other #includes to fix a compiler warning on Windows.
1272
1273 2009-06-02  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
1274
1275         Reviewed by Simon Hausmann.
1276
1277         Add workaround for crash in Linux Flash Player when hosted by
1278         another toolkit than GTK+. Bug fixed at the Flash Player bugzilla,
1279         issue (FP-2140).
1280
1281         * plugins/qt/PluginViewQt.cpp:
1282         (WebCore::PluginView::setNPWindowIfNeeded):
1283
1284 2009-06-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
1285
1286         Reviewed by Simon Hausmann.
1287
1288         Refactor the Qt plugin code to use NPP_SetWindow correctly,
1289         to make resizing of plugins work.
1290
1291         Attention was paid to make sure that the windowed plugins scroll
1292         synchronized with the page view. A manual test has been added.
1293
1294         * manual-tests/qt/plugin-iframe.html: Added.
1295         * plugins/PluginView.cpp:
1296         (WebCore::PluginView::setFrameRect):
1297         (WebCore::PluginView::frameRectsChanged):
1298         * plugins/PluginView.h:
1299         * plugins/qt/PluginContainerQt.cpp:
1300         (PluginContainerQt::PluginContainerQt):
1301         * plugins/qt/PluginContainerQt.h:
1302         * plugins/qt/PluginPackageQt.cpp:
1303         (WebCore::PluginPackage::load):
1304         * plugins/qt/PluginViewQt.cpp:
1305         (WebCore::PluginView::updatePluginWidget):
1306         (WebCore::PluginView::paint):
1307         (WebCore::PluginView::setParent):
1308         (WebCore::PluginView::setNPWindowRect):
1309         (WebCore::PluginView::setNPWindowIfNeeded):
1310         (WebCore::PluginView::handlePostReadFile):
1311         (WebCore::PluginView::getValue):
1312         (WebCore::PluginView::invalidateRect):
1313         (WebCore::PluginView::init):
1314
1315 2009-06-02  Darin Adler  <darin@apple.com>
1316
1317         Reviewed by David Hyatt.
1318
1319         Bug 26112: viewless WebKit -- make events work
1320         https://bugs.webkit.org/show_bug.cgi?id=26112
1321
1322         The main fix here is to make mouse and wheel event coordinates in the coordinate
1323         system of the top level NSView rather than the NSWindow when in the viewless mode.
1324         This is the design Hyatt chose, but the event part of it wasn't done yet.
1325
1326         Also fix FrameView to do normal reference counting instead of a strange model with
1327         an explicit deref near creation time.
1328
1329         * WebCore.base.exp: Updated.
1330
1331         * page/EventHandler.cpp:
1332         (WebCore::EventHandler::eventLoopHandleMouseUp): Moved this function into the file
1333         to reduce conditionals in the header.
1334         (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto.
1335
1336         * page/EventHandler.h: Reduced includes. Fixed formatting of Objective-C types.
1337         Made currentNSEvent a static member function. Added sendContextMenuEvent and
1338         eventMayStartDrag functions that takes NSEvent * so the conversion to PlatformMouseEvent
1339         can be done here rather than in WebKit. Reduced #if by making eventLoopHandleMouseUp and
1340         eventLoopHandleMouseDragged unconditional.
1341
1342         * page/Frame.cpp:
1343         (WebCore::Frame::setView): Made this take a PassRefPtr since it takes ownership.
1344         (WebCore::Frame::createView): Changed to use RefPtr and FrameView::create and remove
1345         the explicit deref.
1346
1347         * page/Frame.h: Changed setView to take a PassRefPtr.
1348
1349         * page/FrameTree.cpp: Added newly-needed include.
1350
1351         * page/FrameView.cpp:
1352         (WebCore::FrameView::FrameView): Got rid of one of the two constructors, and removed
1353         the initialization of m_refCount and call to show from the reamining one.
1354         (WebCore::FrameView::create): Added two create functions that do what the two
1355         constructors did before, except that they return a PassRefPtr to make sure the
1356         reference counting is handled correctly.
1357         (WebCore::FrameView::~FrameView): Removed assertion from when FrameView implemented
1358         its own reference counting.
1359
1360         * page/FrameView.h: Inherit from RefCounted for reference counting. Made the
1361         constructor private and added create functions. Got rid of the hand-implemented
1362         reference counting in this class.
1363
1364         * page/mac/EventHandlerMac.mm:
1365         (WebCore::currentNSEventSlot): Renamed currentEvent to currentNSEventSlot to
1366         make it more clear how it relates to currentNSEvent.
1367         (WebCore::EventHandler::currentNSEvent): Updated.
1368         (WebCore::CurrentEventScope::CurrentEventScope): Added. Use to set/reset the
1369         current event in a foolproof way.
1370         (WebCore::CurrentEventScope::~CurrentEventScope): Ditto.
1371         (WebCore::EventHandler::wheelEvent): Use CurrentEventScope. Pass the platform
1372         window in when constructing the PlatformWheelEvent.
1373         (WebCore::EventHandler::keyEvent): Use CurrentEventScope.
1374         (WebCore::lastEventIsMouseUp): Use currentNSEvent.
1375         (WebCore::EventHandler::passMouseDownEventToWidget): Ditto.
1376         (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto.
1377         (WebCore::EventHandler::eventLoopHandleMouseUp): Ditto.
1378         (WebCore::EventHandler::passSubframeEventToSubframe): Use
1379         currentPlatformMouseEvent to get a mouse event that has the appropriate
1380         platform window passed to create it.
1381         (WebCore::EventHandler::passWheelEventToWidget): Ditto.
1382         (WebCore::EventHandler::mouseDown): Ditto.
1383         (WebCore::EventHandler::mouseDragged): Ditto.
1384         (WebCore::EventHandler::mouseUp): Ditto.
1385         (WebCore::EventHandler::mouseMoved): Ditto.
1386         (WebCore::EventHandler::currentPlatformMouseEvent): Added. Passes the
1387         platform window that's now needed to create a PlatformMouseEvent.
1388         (WebCore::EventHandler::sendContextMenuEvent): Added.
1389         (WebCore::EventHandler::eventMayStartDrag): Added.
1390
1391         * platform/HostWindow.h: Removed unneeded includes and constructor definition.
1392
1393         * platform/PlatformMouseEvent.h: Sorted things in alphabetical order.
1394         Changed Mac constructor to take a windowView as well as the event. This is
1395         needed in viewless mode, since the "window" is actually an NSView, so the
1396         event has to know which view to compute the coordinates with. Made the
1397         same change to pointForEvent.
1398         * platform/PlatformWheelEvent.h: Ditto.
1399
1400         * platform/mac/PlatformMouseEventMac.mm:
1401         (WebCore::pointForEvent): Convert point from window coordinates to view
1402         coordinates if a windowView is passed in. This is used in viewless mode.
1403         (WebCore::PlatformMouseEvent::PlatformMouseEvent): Ditto.
1404         * platform/mac/WheelEventMac.mm:
1405         (WebCore::PlatformWheelEvent::PlatformWheelEvent): Ditto.
1406
1407         * platform/mac/WidgetMac.mm:
1408         (WebCore::Widget::convertFromContainingWindow): Fixed case where there
1409         is no platform widget and no parent. Before it would yield unpredictable
1410         results because of dispatching to a nil object and returning a structure.
1411         Now it returns the point without changing coordinates at all, which is what
1412         we need for this case in viewless mode.
1413
1414         * rendering/RenderApplet.cpp: Removed unneeded includes.
1415         (WebCore::RenderApplet::intrinsicSize): Use widget function.
1416         (WebCore::RenderApplet::createWidgetIfNecessary): Ditto.
1417
1418         * rendering/RenderApplet.h: Make more things private. Get rid of unneeded
1419         explicit destructor.
1420
1421         * rendering/RenderFrame.cpp: Removed unneeded includes.
1422         (WebCore::RenderFrame::edgeInfo): Updated to use node function so header
1423         doesn't have to define element function.
1424         (WebCore::RenderFrame::viewCleared): Ditto. Also changed to use widget
1425         function.
1426
1427         * rendering/RenderFrame.h: Removed unneeded includes. Made some things
1428         private. Got rid of element function.
1429
1430         * rendering/RenderPart.cpp: Removed unneeded includes.
1431         (WebCore::RenderPart::~RenderPart): Changed to use clearWidget function.
1432         (WebCore::RenderPart::setWidget): Changed to use widget function.
1433         (WebCore::RenderPart::deleteWidget): Changed to use passed-in widget.
1434         This is now only called by the clearWidget function.
1435
1436         * rendering/RenderPart.h: Removed unneeded forward declarations.
1437         Made more functions private. Updated deleteWidget to take widget argument.
1438
1439         * rendering/RenderPartObject.cpp:
1440         (WebCore::RenderPartObject::~RenderPartObject): use frameView function
1441         instead of getting at m_view directly.
1442         (WebCore::RenderPartObject::updateWidget): Ditto.
1443         (WebCore::RenderPartObject::layout): Ditto. Same for widget and m_widget.
1444         (WebCore::RenderPartObject::viewCleared): Ditto.
1445
1446         * rendering/RenderPartObject.h: Made some functions private.
1447
1448         * rendering/RenderWidget.cpp:
1449         (WebCore::RenderWidget::RenderWidget): Initialize m_frameView with
1450         construction syntax instead of assignment.
1451         (WebCore::RenderWidget::destroy): Updated for name change of m_view
1452         to m_frameView.
1453         (WebCore::RenderWidget::~RenderWidget): Use clearWidget to delete
1454         the widget.
1455         (WebCore::RenderWidget::setWidget): Use clearWidget.
1456         (WebCore::RenderWidget::paint): Updated for name change of m_view
1457         to m_frameView.
1458         (WebCore::RenderWidget::deleteWidget): Changed to use passed-in widget.
1459
1460         * rendering/RenderWidget.h: Made many functions protected, others
1461         private and made all data members private.
1462
1463         * svg/animation/SMILTime.h: Removed unhelpful max and min functions. These
1464         just do what std::max and std::min will already do automatically for this
1465         type, so they are not helpful.
1466
1467         * svg/graphics/SVGImage.cpp:
1468         (WebCore::SVGImage::SVGImage): Removed unneeded initial values for types
1469         that initialize to zero without anything explicit.
1470         (WebCore::SVGImage::~SVGImage): Update since m_frame and m_frameView are
1471         no longer stored.
1472         (WebCore::SVGImage::setContainerSize): Ditto.
1473         (WebCore::SVGImage::usesContainerSize): Ditto.
1474         (WebCore::SVGImage::size): Ditto.
1475         (WebCore::SVGImage::hasRelativeWidth): Ditto.
1476         (WebCore::SVGImage::hasRelativeHeight): Ditto.
1477         (WebCore::SVGImage::draw): Ditto.
1478         (WebCore::SVGImage::nativeImageForCurrentFrame): Ditto.
1479         (WebCore::SVGImage::dataChanged): Ditto.
1480
1481         * svg/graphics/SVGImage.h: Removed unneeded includes and unneeded data
1482         members m_document, m_frame, m_frameView, and m_minSize.
1483
1484 2009-06-02  Adam Langley  <agl@google.com>
1485
1486         Reviewed by Eric Seidel.
1487
1488         The previous code was assuming that we'll be painting buttons on the scrollbar
1489         which isn't true on Linux. To reproduce, resize a page with scrollbars until
1490         they are less than two widths high.
1491
1492         This will need pixel test baselines to be updated in the Chromium tree.
1493
1494         * platform/chromium/ScrollbarThemeChromium.cpp: move this function...
1495         * platform/chromium/ScrollbarThemeChromiumWin.cpp:
1496         (WebCore::ScrollbarThemeChromium::trackRect): ... to here
1497         * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
1498         (WebCore::ScrollbarThemeChromium::trackRect): add an alternative which
1499         doesn't remove the track when the scrollbar is less than two widths
1500         high.
1501
1502 2009-06-02  Mark Rowe  <mrowe@apple.com>
1503
1504         Reviewed by Anders Carlsson.
1505
1506         Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds.
1507
1508         * Configurations/Base.xcconfig:
1509
1510 2009-06-02  Eric Seidel  <eric@webkit.org>
1511
1512         Reviewed by Maciej Stachowiak.
1513
1514         Insert*List on an stand-alone image in a content editable region ASSERTS
1515         ASSERTION FAILED: isStartOfParagraph(startOfParagraphToMove)
1516         https://bugs.webkit.org/show_bug.cgi?id=19066
1517
1518         Attempt to fix this by noticing that we inserted the list inside
1519         the selection which includes the image, and re-adjust the selection
1520         to not include the list before trying to move the image into
1521         the list item.
1522         
1523         Test: editing/execCommand/list-wrapping-image-crash.html
1524
1525         * editing/InsertListCommand.cpp:
1526         (WebCore::InsertListCommand::doApply):
1527
1528 2009-06-02  Eric Seidel  <eric@webkit.org>
1529
1530         Reviewed by Darin Adler.
1531
1532         Rename PositionIterator members in hope of further clarity
1533         https://bugs.webkit.org/show_bug.cgi?id=24854
1534
1535         Rename m_parent to m_anchorNode (since although it's always the parent
1536         of the previous m_child member, it is not always the parent of the effective position)
1537         Rename m_child to m_nodeAfterPositionInAnchor to make clear that it's the node
1538         directly following the position.  This member is often NULL, but is always
1539         a child of m_parent, now m_anchorNode if set.
1540         Rename m_offset to m_offsetInAnchor (since it's interpreted relative to m_anchorNode)
1541
1542         * dom/PositionIterator.cpp:
1543         (WebCore::PositionIterator::operator Position):
1544         (WebCore::PositionIterator::increment):
1545         (WebCore::PositionIterator::decrement):
1546         (WebCore::PositionIterator::atStart):
1547         (WebCore::PositionIterator::atEnd):
1548         (WebCore::PositionIterator::atStartOfNode):
1549         (WebCore::PositionIterator::atEndOfNode):
1550         (WebCore::PositionIterator::isCandidate):
1551         * dom/PositionIterator.h:
1552         (WebCore::PositionIterator::PositionIterator):
1553         (WebCore::PositionIterator::node):
1554         (WebCore::PositionIterator::offsetInLeafNode):
1555
1556 2009-06-02  Julien Chaffraix  <jchaffraix@webkit.org>
1557
1558         Reviewed by Eric Seidel.
1559
1560         Bug 17167: Failures in fast/dom/Node/initial-values.html
1561
1562         This partly solve a compatibility issue with other browsers. It will also
1563         make us more consistent while handling XHTML element.
1564
1565         The issue is that when we create an XHTML element inside an HTML document
1566         (as it is the case when calling createElementNS), we default to the HTML
1567         behaviour in nodeName. As we cannot test if an HTMLElement is an XHTML
1568         element, our fix is to check whether it has a prefix and then default
1569         to XML behaviour for nodeName.
1570
1571         * html/HTMLElement.cpp:
1572         (WebCore::HTMLElement::nodeName): Add a prefix check before
1573         returning the uppercase tagName (HTML behaviour).
1574
1575 2009-06-02  Eric Seidel  <eric@webkit.org>
1576
1577         Reviewed by Maciej Stachowiak.
1578
1579         Add a compareBoundaryPoints which takes RangeBoundaryPoints
1580         https://bugs.webkit.org/show_bug.cgi?id=25500
1581
1582         I noticed the need for this function when removing compareBoundaryPoints(Position, Position)
1583         This patch is almost entirely minus lines.
1584
1585         No functional changes, thus no tests.
1586
1587         * dom/Range.cpp:
1588         (WebCore::Range::setStart):
1589         (WebCore::Range::setEnd):
1590         (WebCore::Range::compareBoundaryPoints):
1591         (WebCore::Range::boundaryPointsValid):
1592         * dom/Range.h:
1593
1594 2009-06-02  Eric Seidel  <eric@webkit.org>
1595
1596         Reviewed by Maciej Stachowiak.
1597
1598         Remove Range::compareBoundaryPoints(Position, Position) per Darin's suggestion in bug 25056
1599         https://bugs.webkit.org/show_bug.cgi?id=25500
1600
1601         Darin indicated the Range should deal only with primitive DOM node/offset
1602         pairs, and that Position (which is a more robust editing construct) should have
1603         its own comparison functions and that Range.h should not mention Position at all.
1604
1605         Turns out that Position already has a comparePositions() function (which knows
1606         how to additionally handled positions in shadow trees).  So I've just changed
1607         all callers of compareBoundaryPoints(Position, Position) to use the existing
1608         comparePositions() function.  I've also added a comparePositions which takes
1609         VisiblePositions for convenience.
1610
1611         * dom/Range.cpp:
1612         * dom/Range.h:
1613         * editing/ApplyStyleCommand.cpp:
1614         (WebCore::ApplyStyleCommand::updateStartEnd):
1615         (WebCore::ApplyStyleCommand::applyBlockStyle):
1616         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
1617         (WebCore::ApplyStyleCommand::applyInlineStyle):
1618         (WebCore::ApplyStyleCommand::applyInlineStyleToRange):
1619         (WebCore::ApplyStyleCommand::removeInlineStyle):
1620         (WebCore::ApplyStyleCommand::nodeFullySelected):
1621         (WebCore::ApplyStyleCommand::nodeFullyUnselected):
1622         * editing/CompositeEditCommand.cpp:
1623         (WebCore::CompositeEditCommand::deleteInsignificantText):
1624         (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
1625         (WebCore::CompositeEditCommand::moveParagraphs):
1626         * editing/DeleteSelectionCommand.cpp:
1627         (WebCore::DeleteSelectionCommand::initializeStartEnd):
1628         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
1629         (WebCore::DeleteSelectionCommand::mergeParagraphs):
1630         * editing/SelectionController.cpp:
1631         (WebCore::SelectionController::nodeWillBeRemoved):
1632         * editing/VisibleSelection.cpp:
1633         (WebCore::VisibleSelection::toNormalizedRange):
1634         * editing/htmlediting.cpp:
1635         (WebCore::comparePositions):
1636         * editing/htmlediting.h:
1637         * page/EventHandler.cpp:
1638         (WebCore::EventHandler::handleMousePressEventSingleClick):
1639
1640 2009-06-02  Albert J. Wong  <ajwong@chromium.org>
1641
1642         Reviewed by Dimitri Glazkov.
1643
1644         https://bugs.webkit.org/show_bug.cgi?id=26122
1645         Upstream v8_utility.h functions into V8Utilities.h.  This patch has
1646         some transitional code to make upstreaming easier.  This code will
1647         be deleted in a few days.
1648
1649         * bindings/v8/ScriptFunctionCall.cpp:
1650         (WebCore::ScriptFunctionCall::construct): NewInstance -> newInstance.
1651         * bindings/v8/V8Utilities.h:
1652         (WebCore::AllowAllocation::AllowAllocation): Function added.
1653         (WebCore::AllowAllocation::~AllowAllocation): Function added.
1654         (WebCore::SafeAllocation::NewInstance): Function added.
1655         * bindings/v8/WorkerContextExecutionProxy.cpp:
1656         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
1657         NewInstance -> newInstance.
1658         (WebCore::WorkerContextExecutionProxy::toV8): NewInstance ->
1659         newInstance.
1660
1661 2009-06-02  Dan Bernstein  <mitz@apple.com>
1662
1663         Reviewed by John Sullivan.
1664
1665         - fix <rdar://problem/6940747> Search field’s focus ring is outset
1666
1667         * rendering/RenderThemeWin.cpp:
1668         (WebCore::RenderThemeWin::adjustSearchFieldStyle): Set the focused
1669         search field outline offset to -2.
1670
1671 2009-06-02  Sam Weinig  <sam@webkit.org>
1672
1673         Reviewed by Alexey Proskuryakov.
1674
1675         Add list of unimplemented event handlers to DOMWindow.
1676
1677         * page/DOMWindow.idl:
1678
1679 2009-06-02  Alexey Proskuryakov  <ap@webkit.org>
1680
1681         Reviewed by Sam Weinig.
1682
1683         https://bugs.webkit.org/show_bug.cgi?id=26133
1684         Adapt and import py-dom-xpath tests
1685
1686         Tests: fast/xpath/py-dom-xpath/abbreviations.html
1687                fast/xpath/py-dom-xpath/axes.html
1688                fast/xpath/py-dom-xpath/data.html
1689                fast/xpath/py-dom-xpath/expressions.html
1690                fast/xpath/py-dom-xpath/functions.html
1691                fast/xpath/py-dom-xpath/nodetests.html
1692                fast/xpath/py-dom-xpath/paths.html
1693                fast/xpath/py-dom-xpath/predicates.html
1694
1695         Fix bugs found with this test suite:
1696         - name and local-name were incorrect for processing instructions (XPath expanded-name
1697         doesn't match DOM exactly);
1698         - name, local-name and namespace functions should crash on attribute nodes;
1699         - attemps to make node sets from other types were not detected as errors.
1700
1701         No performance impact.
1702
1703         * xml/XPathExpressionNode.h: Track type conversion errors that happen during evaluation.
1704         An error won't stop evaluation, but an exception will be raised afterwards. We could also
1705         detect conversion errors at compile time, but not if we're going to support XPath variables
1706         (which is unnecessary for XPathEvaluator, but will be necessary if we decide to make our own
1707         XSLT one day).
1708
1709         * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Check whether a type
1710         conversion exception occurred during evaluation, and raise an excpetion if it did.
1711
1712         * xml/XPathFunctions.cpp:
1713         (WebCore::XPath::expandedNameLocalPart):
1714         (WebCore::XPath::expandedName):
1715         XPath name(), local-name() and namespace-uri() functions are defined in terms of expanded-name,
1716         which doesn't match anything available via DOM exactly. Calculate the expanded name properly.
1717         (WebCore::XPath::FunNamespaceURI::evaluate): This function could crash if used with an
1718         attribute node, because it released what was possibly the only reference to attribute node
1719         before using it. Changed the function to avoid such situation.
1720         (WebCore::XPath::FunLocalName::evaluate): Ditto. Also, used the new expandedNameLocalPart()
1721         to work properly with processing instruction nodes.
1722         (WebCore::XPath::FunName::evaluate): Ditto (using expandedName()).
1723         (WebCore::XPath::FunCount::evaluate): Signal an error if the argument is not a node-set
1724         (by using toNodeSet unconditionally, which will raise an error, and return an empty set).
1725
1726         * xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Signal an error if the expression
1727         evaluation result is not a node-set.
1728
1729         * xml/XPathPath.h: (WebCore::XPath::Filter::resultType): A Filter's result is actually
1730         always a node-set (this is not so for FilterExpr production in the spec, but is for us,
1731         because we don't naively map BNF productions to classes).
1732
1733         * xml/XPathPredicate.cpp: (WebCore::XPath::Union::evaluate): Signal an error if either side
1734         is not a node-set.
1735
1736         * xml/XPathStep.cpp: Removed an unnecesary include.
1737
1738         * xml/XPathValue.cpp:
1739         (WebCore::XPath::Value::toNodeSet): Signal an error if conversion fails.
1740         (WebCore::XPath::Value::modifiableNodeSet): Ditto.
1741         (WebCore::XPath::Value::toNumber): Don't allow inputs that don't match XPath Number production
1742         (in particular, those using exponential notation).
1743
1744 2009-06-01  Sam Weinig  <sam@webkit.org>
1745
1746         Reviewed by Brady Eidson.
1747
1748         Part of https://bugs.webkit.org/show_bug.cgi?id=26100
1749         Add missing event handler properties to the DOMWindow
1750
1751         Added oncontextmenu, oninput, and onmessage event handlers to
1752         the DOMWindow. Aditionally, the onloadstart, onprogress, onstalled,
1753         and onsuspend event handlers were implemented but not added to
1754         DOMWindow.idl.
1755
1756         * page/DOMWindow.cpp:
1757         (WebCore::DOMWindow::oninput):
1758         (WebCore::DOMWindow::setOninput):
1759         (WebCore::DOMWindow::onmessage):
1760         (WebCore::DOMWindow::setOnmessage):
1761         (WebCore::DOMWindow::oncontextmenu):
1762         (WebCore::DOMWindow::setOncontextmenu):
1763         * page/DOMWindow.h:
1764         * page/DOMWindow.idl:
1765
1766 2009-06-01  Jeremy Orlow  <jorlow@chromium.org>
1767
1768         Reviewed by Darin Adler.  Landed by Adam Barth.
1769
1770         https://bugs.webkit.org/show_bug.cgi?id=26123
1771
1772         Remove a redundant checkEncodedString call when constructing a
1773         KURL object from a string.
1774
1775         * platform/KURL.cpp:
1776         (WebCore::KURL::KURL):
1777
1778 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
1779
1780         Unreviewed, build fix.
1781
1782         Reposition platform guard, improperly placed by http://trac.webkit.org/changeset/44340
1783         Bad Dimitri.
1784
1785         * platform/KeyboardCodes.h: Repositioned the guard to avoid nested
1786             WebCore namespace declarations.
1787
1788 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
1789
1790         Unreviewed, build fix.
1791
1792         * platform/KeyboardCodes.h: Integrated contents of platform/chromium/KeyboardCodes.h
1793             with a stern FIXME.
1794         * platform/chromium/KeyboardCodes.h: Removed.
1795
1796 2009-06-01  Nikolas Zimmermann  <zimmermann@kde.org>
1797
1798         Reviewed by Eric Seidel.
1799
1800         Fix assertion error in --filters enabled debug builds.
1801         Instead of using RefPtr<AtomicStringImpl> as keys for the hash maps in SVGFilterBuilder, just use AtomicString objects.
1802
1803         * svg/graphics/filters/SVGFilterBuilder.cpp:
1804         (WebCore::SVGFilterBuilder::SVGFilterBuilder):
1805         (WebCore::SVGFilterBuilder::add):
1806         (WebCore::SVGFilterBuilder::getEffectById):
1807         * svg/graphics/filters/SVGFilterBuilder.h:
1808
1809 2009-06-01  Nikolas Zimmermann  <zimmermann@kde.org>
1810
1811         Reviewed by Eric Seidel.
1812
1813         Fix --filters enabled build on Mac.
1814         Remove unnecessary 'boundingBox' parameter from finishRenderSVGContent() method.
1815         Kill several warnings, to make build pass.
1816
1817         * rendering/RenderPath.cpp:
1818         (WebCore::RenderPath::paint):
1819         * rendering/RenderSVGContainer.cpp:
1820         (WebCore::RenderSVGContainer::paint):
1821         * rendering/RenderSVGImage.cpp:
1822         (WebCore::RenderSVGImage::paint):
1823         * rendering/RenderSVGRoot.cpp:
1824         (WebCore::RenderSVGRoot::paint):
1825         * rendering/SVGRenderSupport.cpp:
1826         (WebCore::SVGRenderBase::finishRenderSVGContent):
1827         * rendering/SVGRenderSupport.h:
1828         * rendering/SVGRootInlineBox.cpp:
1829         (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
1830         * svg/SVGFEGaussianBlurElement.cpp:
1831         (WebCore::SVGFEGaussianBlurElement::setStdDeviation):
1832         * svg/graphics/filters/SVGFEFlood.cpp:
1833         (WebCore::FEFlood::FEFlood):
1834
1835 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
1836
1837         Reviewed by Dave Hyatt.
1838
1839         Fix Chromium build by adding an #ifdef, restoring the code path to that
1840         before http://trac.webkit.org/changeset/44287.
1841
1842         * platform/mac/ScrollbarThemeMac.mm:
1843         (WebCore::ScrollbarThemeMac::paint): Added an #ifdef.
1844
1845 2009-06-01  Dirk Schulze  <krit@webkit.org>
1846
1847         Reviewed by Nikolas Zimmermann.
1848
1849         Remove last pieces of the old SVG filter system. They are not
1850         usable with our current filter system. The new filter effects
1851         will replace the functionality step by step.
1852
1853         * GNUmakefile.am:
1854         * WebCore.pro:
1855         * WebCore.vcproj/WebCore.vcproj:
1856         * WebCore.xcodeproj/project.pbxproj:
1857         * svg/graphics/cairo: Removed.
1858         * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Removed.
1859         * svg/graphics/cg: Removed.
1860         * svg/graphics/cg/SVGResourceFilterCg.cpp: Removed.
1861         * svg/graphics/cg/SVGResourceFilterCg.mm: Removed.
1862         * svg/graphics/filters/SVGFilterEffect.cpp: Removed.
1863         * svg/graphics/filters/SVGFilterEffect.h: Removed.
1864         * svg/graphics/filters/cg: Removed.
1865         * svg/graphics/filters/cg/SVGFEHelpersCg.h: Removed.
1866         * svg/graphics/filters/cg/SVGFEHelpersCg.mm: Removed.
1867         * svg/graphics/filters/cg/SVGFilterEffectCg.mm: Removed.
1868         * svg/graphics/filters/cg/WKArithmeticFilter.cikernel: Removed.
1869         * svg/graphics/filters/cg/WKArithmeticFilter.h: Removed.
1870         * svg/graphics/filters/cg/WKArithmeticFilter.m: Removed.
1871         * svg/graphics/filters/cg/WKComponentMergeFilter.cikernel: Removed.
1872         * svg/graphics/filters/cg/WKComponentMergeFilter.h: Removed.
1873         * svg/graphics/filters/cg/WKComponentMergeFilter.m: Removed.
1874         * svg/graphics/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
1875         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h: Removed.
1876         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m: Removed.
1877         * svg/graphics/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
1878         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h: Removed.
1879         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m: Removed.
1880         * svg/graphics/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
1881         * svg/graphics/filters/cg/WKDisplacementMapFilter.h: Removed.
1882         * svg/graphics/filters/cg/WKDisplacementMapFilter.m: Removed.
1883         * svg/graphics/filters/cg/WKDistantLightFilter.cikernel: Removed.
1884         * svg/graphics/filters/cg/WKDistantLightFilter.h: Removed.
1885         * svg/graphics/filters/cg/WKDistantLightFilter.m: Removed.
1886         * svg/graphics/filters/cg/WKGammaTransferFilter.cikernel: Removed.
1887         * svg/graphics/filters/cg/WKGammaTransferFilter.h: Removed.
1888         * svg/graphics/filters/cg/WKGammaTransferFilter.m: Removed.
1889         * svg/graphics/filters/cg/WKIdentityTransferFilter.h: Removed.
1890         * svg/graphics/filters/cg/WKIdentityTransferFilter.m: Removed.
1891         * svg/graphics/filters/cg/WKLinearTransferFilter.cikernel: Removed.
1892         * svg/graphics/filters/cg/WKLinearTransferFilter.h: Removed.
1893         * svg/graphics/filters/cg/WKLinearTransferFilter.m: Removed.
1894         * svg/graphics/filters/cg/WKNormalMapFilter.cikernel: Removed.
1895         * svg/graphics/filters/cg/WKNormalMapFilter.h: Removed.
1896         * svg/graphics/filters/cg/WKNormalMapFilter.m: Removed.
1897         * svg/graphics/filters/cg/WKPointLightFilter.cikernel: Removed.
1898         * svg/graphics/filters/cg/WKPointLightFilter.h: Removed.
1899         * svg/graphics/filters/cg/WKPointLightFilter.m: Removed.
1900         * svg/graphics/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
1901         * svg/graphics/filters/cg/WKSpecularLightingFilter.h: Removed.
1902         * svg/graphics/filters/cg/WKSpecularLightingFilter.m: Removed.
1903         * svg/graphics/filters/cg/WKSpotLightFilter.cikernel: Removed.
1904         * svg/graphics/filters/cg/WKSpotLightFilter.h: Removed.
1905         * svg/graphics/filters/cg/WKSpotLightFilter.m: Removed.
1906         * svg/graphics/filters/cg/WKTableTransferFilter.cikernel: Removed.
1907         * svg/graphics/filters/cg/WKTableTransferFilter.h: Removed.
1908         * svg/graphics/filters/cg/WKTableTransferFilter.m: Removed.
1909         * svg/graphics/mac: Removed.
1910         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h: Removed.
1911         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
1912         * svg/graphics/qt: Removed.
1913         * svg/graphics/qt/SVGResourceFilterQt.cpp: Removed.
1914         * svg/graphics/skia: Removed.
1915         * svg/graphics/skia/SVGResourceFilterSkia.cpp: Removed.
1916
1917 2009-06-01  Dmitry Titov  <dimich@chromium.org>
1918
1919         Fix the previous checkin (ttp://trac.webkit.org/changeset/44327).
1920         This adds a comment suggested during review.
1921
1922         * platform/ThreadGlobalData.cpp:
1923         (WebCore::ThreadGlobalData::~ThreadGlobalData): Add comment clarifying the change.
1924
1925 2009-06-01  Dmitry Titov  <dimich@chromium.org>
1926
1927         Reviewed by Darin Adler.
1928
1929         https://bugs.webkit.org/show_bug.cgi?id=25973
1930         Avoid calling CurrentThread() in thread-specific destructors in OSX Chromium.
1931         Pthreads invoke thread-specific destructors after WTF::detachThread() is called and ThreadIdentifier
1932         for the thread removed from the WTF thread map. Calling CurrentThread() in such destructor causes
1933         the ThreadIdentifier to be re-created and inserted into the map again. Since Pthreads on OSX reuse
1934         the pthread_t between threads, the next created thread will have the same pthread_t and cause an assert
1935         in establishIdentifierForPthreadHandle() since the id is already in the map.
1936
1937         The behavior is covered by existing test LayoutTests/fast/workers/worker-terminate.html, which currently fails
1938         on OSX Chromium and will stop failing after this change.
1939
1940         * platform/ThreadGlobalData.h:
1941         * platform/ThreadGlobalData.cpp:
1942         (WebCore::ThreadGlobalData::~ThreadGlobalData):
1943         Store the result of "isMainThread()" in a member variable during construction of thread-specific data
1944         to avoid calling IsMainThread() in destructor, since the latter calls CurrentThread() in OSX Chromium.
1945
1946 2009-06-01  David Levin  <levin@chromium.org>
1947
1948         Reviewed by Darin Alder and Maciej Stachowiak.
1949
1950         Bug 26057: StringImpl should share buffers with UString.
1951         https://bugs.webkit.org/show_bug.cgi?id=26057
1952
1953         This change results in the following performance improvements:
1954         On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/001.html
1955         the time went from 78ms to 40ms for append (other times remained constant).
1956
1957         On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/002.html,
1958         the time went from 3900ms to 2600ms.
1959
1960         For http://dromaeo.com/?dom, the time for DomModification improved by ~6%.
1961         Other tests in dom seemed to be faster across several runs but within the
1962         margin of error (except DOM Attributes which was slightly ~1.5% worse).
1963
1964         Existing tests cover this code and there is no new functionality
1965         that is exposed to test.
1966
1967         * platform/text/AtomicString.cpp:
1968         (WebCore::AtomicString::add):
1969         * platform/text/String.cpp:
1970         (WebCore::String::String):
1971         (WebCore::String::operator UString):
1972         * platform/text/StringImpl.cpp:
1973         (WebCore::StringImpl::StringImpl):
1974         (WebCore::StringImpl::~StringImpl):
1975         (WebCore::StringImpl::create): Consumes a shared buffer.
1976         (WebCore::StringImpl::ustring): Shares the StringImpl's buffer with the UString.
1977         (WebCore::StringImpl::sharedBuffer): Exposes the buffer that may be shared.
1978         * platform/text/StringImpl.h:
1979         (WebCore::StringImpl::hasTerminatingNullCharacter):
1980         (WebCore::StringImpl::inTable):
1981         (WebCore::StringImpl::setInTable): Converted the bools to be inside of PtrAndFlags
1982         to avoid growing StringImpl in size.
1983
1984 2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>
1985
1986         Unreviewed, build fix.
1987
1988         V8 bindings follow-up to to DOMWindow-related cleanup:
1989         http://trac.webkit.org/changeset/44215
1990
1991         * bindings/v8/ScriptController.cpp: Removed disconnectFrame(), relocated
1992             its body to destructor.
1993         * bindings/v8/ScriptController.h: Removed disconnectFrame() decl.
1994
1995 2009-05-28  Pavel Feldman  <pfeldman@chromium.org>
1996
1997         Reviewed by Timothy Hatcher.
1998
1999         - Add panel enabler to the resources panel.
2000         - Add session / always options into the panel enabler.
2001         - Make enabled status for three panels sticky (globally).
2002         - Persist enabled status using InspectorController::Settings
2003         - Make InspectorController produce no network-related overhead when
2004           resources panel is not enabled.
2005
2006         https://bugs.webkit.org/show_bug.cgi?id=26046
2007
2008         * inspector/InspectorController.cpp:
2009         (WebCore::InspectorController::InspectorController):
2010         (WebCore::InspectorController::setWindowVisible):
2011         (WebCore::InspectorController::populateScriptObjects):
2012         (WebCore::InspectorController::identifierForInitialRequest):
2013         (WebCore::InspectorController::willSendRequest):
2014         (WebCore::InspectorController::didReceiveResponse):
2015         (WebCore::InspectorController::didReceiveContentLength):
2016         (WebCore::InspectorController::didFinishLoading):
2017         (WebCore::InspectorController::didFailLoading):
2018         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
2019         (WebCore::InspectorController::scriptImported):
2020         (WebCore::InspectorController::enableResourceTracking):
2021         (WebCore::InspectorController::disableResourceTracking):
2022         (WebCore::InspectorController::startUserInitiatedProfiling):
2023         (WebCore::InspectorController::enableProfiler):
2024         (WebCore::InspectorController::disableProfiler):
2025         (WebCore::InspectorController::enableDebugger):
2026         (WebCore::InspectorController::disableDebugger):
2027         * inspector/InspectorController.h:
2028         (WebCore::InspectorController::Setting::Setting):
2029         (WebCore::InspectorController::resourceTrackingEnabled):
2030         * inspector/InspectorController.idl:
2031         * inspector/InspectorFrontend.cpp:
2032         (WebCore::InspectorFrontend::resourceTrackingWasEnabled):
2033         (WebCore::InspectorFrontend::resourceTrackingWasDisabled):
2034         * inspector/InspectorFrontend.h:
2035         * inspector/front-end/PanelEnablerView.js:
2036         (WebInspector.PanelEnablerView.enableOption):
2037         (WebInspector.PanelEnablerView):
2038         (WebInspector.PanelEnablerView.prototype._windowResized):
2039         (WebInspector.PanelEnablerView.prototype.alwaysWasChosen):
2040         * inspector/front-end/ProfilesPanel.js:
2041         (WebInspector.ProfilesPanel.prototype._enableProfiling):
2042         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2043         * inspector/front-end/ResourcesPanel.js:
2044         (WebInspector.ResourcesPanel):
2045         (WebInspector.ResourcesPanel.prototype.get statusBarItems):
2046         (WebInspector.ResourcesPanel.prototype.resourceTrackingWasEnabled):
2047         (WebInspector.ResourcesPanel.prototype.resourceTrackingWasDisabled):
2048         (WebInspector.ResourcesPanel.prototype.reset):
2049         (WebInspector.ResourcesPanel.prototype._updateSidebarWidth):
2050         (WebInspector.ResourcesPanel.prototype._enableResourceTracking):
2051         (WebInspector.ResourcesPanel.prototype._toggleResourceTracking):
2052         * inspector/front-end/ScriptsPanel.js:
2053         (WebInspector.ScriptsPanel.prototype._enableDebugging):
2054         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2055         * inspector/front-end/inspector.css:
2056         * inspector/front-end/inspector.js:
2057         (WebInspector.resourceTrackingWasEnabled):
2058         (WebInspector.resourceTrackingWasDisabled):
2059
2060 2009-06-01  Drew Wilson  <atwilson@google.com>
2061
2062         Reviewed by Darin Adler.  Landed (and tweaked) by Adam Barth.
2063
2064         https://bugs.webkit.org/show_bug.cgi?id=25902
2065
2066         Added WorkerContext.close()
2067
2068         Test: fast/workers/worker-close.html
2069
2070         * workers/WorkerContext.cpp:
2071         (WebCore::WorkerContext::close):
2072         * workers/WorkerContext.h:
2073         * workers/WorkerContext.idl:
2074         * workers/WorkerMessagingProxy.cpp:
2075         (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):
2076
2077 2009-06-01  Alexey Proskuryakov  <ap@webkit.org>
2078
2079         Reviewed by Darin Adler.
2080
2081         https://bugs.webkit.org/show_bug.cgi?id=12471
2082         XPathResult not invalidated for documents retrieved via XMLHttpRequest
2083
2084         Test: fast/xpath/detached-subtree-invalidate-iterator.html and existing tests in dom/svg/level3/xpath.
2085
2086         Use DOM tree version instead of DOMSubtreeModified events to invalidate, which is more
2087         reliable and much faster.
2088
2089         * xml/XPathExpression.cpp:
2090         (WebCore::XPathExpression::evaluate):
2091         * xml/XPathResult.cpp:
2092         (WebCore::XPathResult::XPathResult):
2093         (WebCore::XPathResult::~XPathResult):
2094         (WebCore::XPathResult::invalidIteratorState):
2095         (WebCore::XPathResult::iterateNext):
2096         * xml/XPathResult.h:
2097         (WebCore::XPathResult::create):
2098
2099 2009-06-01  Brett Wilson  <brettw@chromium.org>
2100
2101         Reviewed by Darin Adler.  Landed by Adam Barth.
2102
2103         https://bugs.webkit.org/show_bug.cgi?id=25750
2104
2105         Test: fast/transforms/bounding-rect-zoom.html
2106
2107         Make getClientRects and getBoundingClientRect account for ther zoom
2108         factor.
2109
2110         * dom/Element.cpp:
2111         (WebCore::adjustFloatPointForAbsoluteZoom):
2112         (WebCore::adjustFloatQuadForAbsoluteZoom):
2113         (WebCore::adjustIntRectForAbsoluteZoom):
2114         (WebCore::Element::getClientRects):
2115         (WebCore::Element::getBoundingClientRect):
2116
2117 2009-06-01  Tony Chang  <tony@chromium.org>
2118
2119         Reviewed by Dimitri Glazkov.  Landed by Adam Barth.
2120
2121         https://bugs.webkit.org/show_bug.cgi?id=26026
2122
2123         Fix an infinite loop when using the keyboard in Chromium select
2124         popups.
2125
2126         Not testable since it involves sending a keyboard event to
2127         the popup, which is not possible (eventSender sends the key
2128         events through webview, we want to go through the webwidget).
2129
2130         * platform/chromium/PopupMenuChromium.cpp:
2131
2132 2009-06-01  Nate Chapin  <japhet@google.com>
2133
2134         Reviewed by Dimitri Glazkov.  Landed by Adam Barth.
2135
2136         If a url with an anchor is being loaded, ensure that the anchor remains locked in view until the page
2137         has finished loading compeltely or the user has manually scrolled.  Refreshing an anchor url after
2138         scrolling to a new location on the page will still result in jumping to the new location.
2139         
2140         https://bugs.webkit.org/show_bug.cgi?id=26034
2141
2142         * loader/FrameLoader.cpp:
2143         (WebCore::FrameLoader::gotoAnchor): Set anchor lock after navigating to anchor.
2144         (WebCore::FrameLoader::completed): Release anchor lock.
2145         * page/FrameView.cpp:
2146         (WebCore::FrameView::FrameView): Ensure anchor lock starts unset.
2147         (WebCore::FrameView::reset): Ensure anchor lock starts unset.
2148         (WebCore::FrameView::layout): If anchor lock is set, force a gotoAnchor() after layout.
2149         (WebCore::FrameView::scrollRectIntoViewRecursively): Release anchor lock if a programmatic scroll begins.
2150         (WebCore::FrameView::setWasScrolledByUser): Release anchor lock if user manually scrolls.
2151         (WebCore::FrameView::setScrollPosition): Release anchor lock if a programmatic scroll begins.
2152         * page/FrameView.h:
2153         (WebCore::FrameView::lockedToAnchor): Added.
2154         (WebCore::FrameView::setLockedToAnchor): Added.
2155
2156 2009-05-31  Dirk Schulze  <krit@webkit.org>
2157
2158         Reviewed by Nikolas Zimmermann.
2159
2160         WebKit needs cross-platform filter system
2161         [https://bugs.webkit.org/show_bug.cgi?id=19991]
2162
2163         A short clean-up. FilterBuilder is SVG specific. Move it
2164         to svg/graphics/filters and rename it to SVGFilterBuilder. 
2165
2166         * GNUmakefile.am:
2167         * WebCore.pro:
2168         * WebCore.xcodeproj/project.pbxproj:
2169         * svg/FilterBuilder.cpp: Removed.
2170         * svg/FilterBuilder.h: Removed.
2171         * svg/SVGFilterElement.cpp:
2172         * svg/SVGFilterPrimitiveStandardAttributes.h:
2173         * svg/graphics/SVGResourceFilter.cpp:
2174         (WebCore::SVGResourceFilter::SVGResourceFilter):
2175         * svg/graphics/SVGResourceFilter.h:
2176         (WebCore::SVGResourceFilter::builder):
2177         * svg/graphics/filters/SVGFilterBuilder.cpp: Added.
2178         (WebCore::SVGFilterBuilder::SVGFilterBuilder):
2179         (WebCore::SVGFilterBuilder::add):
2180         (WebCore::SVGFilterBuilder::getEffectById):
2181         (WebCore::SVGFilterBuilder::clearEffects):
2182         * svg/graphics/filters/SVGFilterBuilder.h: Added.
2183         (WebCore::SVGFilterBuilder::lastEffect):
2184
2185 2009-05-31  Alexey Proskuryakov  <ap@webkit.org>
2186
2187         Reviewed by Darin Adler.
2188
2189         https://bugs.webkit.org/show_bug.cgi?id=13233
2190         Need to implement an optimizing XPath evaluator
2191
2192         Avoid sorting results of hierarchical paths that are naturally sorted. On a flat data structure
2193         with 128K nodes and a simple XPath expression, this changes evaluation time from 1.5 minutes
2194         to 33 ms.
2195
2196         * xml/XPathNodeSet.h: Keep track of whether subtrees rooted at nodes in set are disjoint,
2197         which is useful for optimization.
2198         (WebCore::XPath::NodeSet::NodeSet): Removed, it was identical to compiler generated one.
2199         (WebCore::XPath::NodeSet::operator=): Ditto.
2200         (WebCore::XPath::NodeSet::swap): Ditto.
2201         (WebCore::XPath::NodeSet::isSorted): Single element sets are always sorted, even if sort()
2202         was never called.
2203         (WebCore::XPath::NodeSet::markSubtreesDisjoint): Just like being sorted, the new flag is
2204         maintained by callers.
2205         (WebCore::XPath::NodeSet::subtreesAreDisjoint): A single element set only has one subtree.
2206         Currently, the only way for a set to gain this flag is to be produced from a single element
2207         set with a hierarchical location path.
2208
2209         * xml/XPathPath.cpp: (WebCore::XPath::LocationPath::evaluate): Use the new flag to avoid
2210         maintaining a set of unique nodes, and to avoid sorting the result.
2211
2212 2009-05-31  Alexey Proskuryakov  <ap@webkit.org>
2213
2214         Reviewed by Darin Adler.
2215
2216         https://bugs.webkit.org/show_bug.cgi?id=13233
2217         Need to implement an optimizing XPath evaluator
2218
2219         This patch adds some infrastructure and simple optimizations. Namely,
2220         - we now avoid building a full NodeSet just to evaluate a predicate in some cases;
2221         - "/descendant-or-self::node()/child::" is optimized to iterate the tree once when possible;
2222
2223         * xml/XPathExpressionNode.cpp:
2224         (WebCore::XPath::Expression::Expression):
2225         * xml/XPathExpressionNode.h:
2226         (WebCore::XPath::Expression::addSubExpression):
2227         (WebCore::XPath::Expression::isContextNodeSensitive):
2228         (WebCore::XPath::Expression::isContextPositionSensitive):
2229         (WebCore::XPath::Expression::isContextSizeSensitive):
2230         (WebCore::XPath::Expression::setIsContextNodeSensitive):
2231         (WebCore::XPath::Expression::setIsContextPositionSensitive):
2232         (WebCore::XPath::Expression::setIsContextSizeSensitive):
2233         XPath expression now knows its result type, and whether evaluation depends on context.
2234
2235         * xml/XPathFunctions.cpp:
2236         (WebCore::XPath::FunLast::resultType):
2237         (WebCore::XPath::FunLast::FunLast):
2238         (WebCore::XPath::FunPosition::resultType):
2239         (WebCore::XPath::FunPosition::FunPosition):
2240         (WebCore::XPath::FunCount::resultType):
2241         (WebCore::XPath::FunId::resultType):
2242         (WebCore::XPath::FunLocalName::resultType):
2243         (WebCore::XPath::FunLocalName::FunLocalName):
2244         (WebCore::XPath::FunNamespaceURI::resultType):
2245         (WebCore::XPath::FunNamespaceURI::FunNamespaceURI):
2246         (WebCore::XPath::FunName::resultType):
2247         (WebCore::XPath::FunName::FunName):
2248         (WebCore::XPath::FunString::resultType):
2249         (WebCore::XPath::FunString::FunString):
2250         (WebCore::XPath::FunConcat::resultType):
2251         (WebCore::XPath::FunStartsWith::resultType):
2252         (WebCore::XPath::FunContains::resultType):
2253         (WebCore::XPath::FunSubstringBefore::resultType):
2254         (WebCore::XPath::FunSubstringAfter::resultType):
2255         (WebCore::XPath::FunSubstring::resultType):
2256         (WebCore::XPath::FunStringLength::resultType):
2257         (WebCore::XPath::FunStringLength::FunStringLength):
2258         (WebCore::XPath::FunNormalizeSpace::resultType):
2259         (WebCore::XPath::FunNormalizeSpace::FunNormalizeSpace):
2260         (WebCore::XPath::FunTranslate::resultType):
2261         (WebCore::XPath::FunBoolean::resultType):
2262         (WebCore::XPath::FunNot::resultType):
2263         (WebCore::XPath::FunTrue::resultType):
2264         (WebCore::XPath::FunFalse::resultType):
2265         (WebCore::XPath::FunLang::resultType):
2266         (WebCore::XPath::FunLang::FunLang):
2267         (WebCore::XPath::FunNumber::resultType):
2268         (WebCore::XPath::FunNumber::FunNumber):
2269         (WebCore::XPath::FunSum::resultType):
2270         (WebCore::XPath::FunFloor::resultType):
2271         (WebCore::XPath::FunCeiling::resultType):
2272         (WebCore::XPath::FunRound::resultType):
2273         (WebCore::XPath::Function::setArguments):
2274         Set optimization details for the expression. Normally, a function does not introduce context
2275         node set dependency, but some use context node as default argument, or otherwise use the context.
2276
2277         * xml/XPathFunctions.h: Tweaked style.
2278
2279         * xml/XPathPath.cpp:
2280         (WebCore::XPath::Filter::Filter): A filter is as context node set sensitive as its expression is.
2281         (WebCore::XPath::LocationPath::LocationPath): A location path can only be context node sensitive,
2282         and only if the path relative.
2283         (WebCore::XPath::LocationPath::appendStep): Invoke compile-time Step optimizations.
2284         (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
2285         (WebCore::XPath::Path::Path): A path is as context node set sensitive as its filter is.
2286
2287         * xml/XPathPath.h:
2288         (WebCore::XPath::Filter::resultType): Result type of a filter is the same as of its expression
2289         (useful filters return NodeSets, of course).
2290         (WebCore::XPath::LocationPath::setAbsolute): An absolute location path if context node set
2291         insensitive.
2292         (WebCore::XPath::LocationPath::resultType): A path's result is always a node set.
2293         (WebCore::XPath::Path::resultType): Ditto.
2294
2295         * xml/XPathPredicate.h:
2296         (WebCore::XPath::Number::resultType): Return a proper result type.
2297         (WebCore::XPath::StringExpression::resultType): Ditto.
2298         (WebCore::XPath::Negative::resultType): Ditto.
2299         (WebCore::XPath::NumericOp::resultType): Ditto.
2300         (WebCore::XPath::EqTestOp::resultType): Ditto.
2301         (WebCore::XPath::LogicalOp::resultType): Ditto.
2302         (WebCore::XPath::Union::resultType): Ditto.
2303         (WebCore::XPath::Predicate::isContextPositionSensitive): A predicate can be context position
2304         sensitive even if its expression is not, because e.g. [5] is a shortcut for [position()=5].
2305         (WebCore::XPath::Predicate::isContextSizeSensitive): This matches expression result.
2306
2307         * xml/XPathStep.h:
2308         (WebCore::XPath::Step::NodeTest::Kind): Removed unused ElementNodeTest, which was previously
2309         borrowed from XPath 2.0 to express some optimizations.
2310         (WebCore::XPath::Step::NodeTest::mergedPredicates): To avoid building a huge node set and
2311         filtering it with predicates, we now try to apply predicates while enumerating an axis.
2312         (WebCore::XPath::Step::nodeTest): Expose m_nodeTest.
2313
2314         * xml/XPathStep.cpp:
2315         (WebCore::XPath::Step::~Step): The step owns NodeTest merged predicates, so it is still
2316         possible to copy NodeTests.
2317         (WebCore::XPath::Step::optimize): Merge predicates into NodeTest if possible.
2318         (WebCore::XPath::optimizeStepPair): Optimize some expressions containing "//".
2319         (WebCore::XPath::Step::predicatesAreContextListInsensitive): The above optimization is only
2320         possible if there are no context sensitive predicates for "//".
2321         (WebCore::XPath::Step::evaluate): Track context position for the first merged predicate.
2322         (WebCore::XPath::nodeMatchesBasicTest): Check whether the node matches node test, ignoring
2323         merged predicates.
2324         (WebCore::XPath::nodeMatches): Additionally check merged predicates, and update position.
2325         (WebCore::XPath::Step::nodesInAxis): Check merged predicates in optimized attribute code
2326         path.
2327
2328         * xml/XPathVariableReference.h: (WebCore::XPath::VariableReference::resultType): Variable
2329         references are not used with XPathEvaluator, so we'll only need them if we decide to
2330         reimplement XSLT. The type of variable reference is not known at compile time.
2331
2332 2009-05-31  Sam Weinig  <sam@webkit.org>
2333
2334         Rubber-stamped by Dan Bernstein.
2335
2336         Remove unused JSEventTargetBase.h
2337
2338         * GNUmakefile.am:
2339         * WebCore.vcproj/WebCore.vcproj:
2340         * WebCore.xcodeproj/project.pbxproj:
2341         * bindings/js/JSEventTargetBase.h: Removed.
2342
2343 2009-05-31  Sam Weinig  <sam@webkit.org>
2344
2345         Reviewed by Dan Bernstein.
2346
2347         Part of https://bugs.webkit.org/show_bug.cgi?id=26100
2348         Add missing event handler properties to the DOMWindow
2349
2350         Add missing oncanplay, oncanplaythrough, ondurationchange, onemptied,
2351         onended, onloadeddata, onloadedmetadata, onpause, onplay, onplaying,
2352         onratechange, onseeked, onseeking, ontimeupdate, onvolumechange,
2353         onwaiting, onloadstart, onprogress, onstalled, onsuspend, ondrag,
2354         ondragend, ondragenter, ondragleave, ondragover, ondragstart and 
2355         ondrop event handlers to the DOMWindow.
2356
2357         * page/DOMWindow.cpp:
2358         (WebCore::DOMWindow::ondrag):
2359         (WebCore::DOMWindow::setOndrag):
2360         (WebCore::DOMWindow::ondragend):
2361         (WebCore::DOMWindow::setOndragend):
2362         (WebCore::DOMWindow::ondragenter):
2363         (WebCore::DOMWindow::setOndragenter):
2364         (WebCore::DOMWindow::ondragleave):
2365         (WebCore::DOMWindow::setOndragleave):
2366         (WebCore::DOMWindow::ondragover):
2367         (WebCore::DOMWindow::setOndragover):
2368         (WebCore::DOMWindow::ondragstart):
2369         (WebCore::DOMWindow::setOndragstart):
2370         (WebCore::DOMWindow::ondrop):
2371         (WebCore::DOMWindow::setOndrop):
2372         (WebCore::DOMWindow::oncanplay):
2373         (WebCore::DOMWindow::setOncanplay):
2374         (WebCore::DOMWindow::oncanplaythrough):
2375         (WebCore::DOMWindow::setOncanplaythrough):
2376         (WebCore::DOMWindow::ondurationchange):
2377         (WebCore::DOMWindow::setOndurationchange):
2378         (WebCore::DOMWindow::onemptied):
2379         (WebCore::DOMWindow::setOnemptied):
2380         (WebCore::DOMWindow::onended):
2381         (WebCore::DOMWindow::setOnended):
2382         (WebCore::DOMWindow::onloadeddata):
2383         (WebCore::DOMWindow::setOnloadeddata):
2384         (WebCore::DOMWindow::onloadedmetadata):
2385         (WebCore::DOMWindow::setOnloadedmetadata):
2386         (WebCore::DOMWindow::onpause):
2387         (WebCore::DOMWindow::setOnpause):
2388         (WebCore::DOMWindow::onplay):
2389         (WebCore::DOMWindow::setOnplay):
2390         (WebCore::DOMWindow::onplaying):
2391         (WebCore::DOMWindow::setOnplaying):
2392         (WebCore::DOMWindow::onratechange):
2393         (WebCore::DOMWindow::setOnratechange):
2394         (WebCore::DOMWindow::onseeked):
2395         (WebCore::DOMWindow::setOnseeked):
2396         (WebCore::DOMWindow::onseeking):
2397         (WebCore::DOMWindow::setOnseeking):
2398         (WebCore::DOMWindow::ontimeupdate):
2399         (WebCore::DOMWindow::setOntimeupdate):
2400         (WebCore::DOMWindow::onvolumechange):
2401         (WebCore::DOMWindow::setOnvolumechange):
2402         (WebCore::DOMWindow::onwaiting):
2403         (WebCore::DOMWindow::setOnwaiting):
2404         (WebCore::DOMWindow::onloadstart):
2405         (WebCore::DOMWindow::setOnloadstart):
2406         (WebCore::DOMWindow::onprogress):
2407         (WebCore::DOMWindow::setOnprogress):
2408         (WebCore::DOMWindow::onstalled):
2409         (WebCore::DOMWindow::setOnstalled):
2410         (WebCore::DOMWindow::onsuspend):
2411         (WebCore::DOMWindow::setOnsuspend):
2412         * page/DOMWindow.h:
2413         * page/DOMWindow.idl:
2414
2415 2009-05-31  Sam Weinig  <sam@webkit.org>
2416
2417         Reviewed by Anders Carlsson.
2418
2419         Part of https://bugs.webkit.org/show_bug.cgi?id=26100
2420         Add missing event handler properties to the DOMWindow
2421
2422         Add missing onstorage event handler to the DOMWindow.
2423
2424         * page/DOMWindow.cpp:
2425         (WebCore::DOMWindow::onstorage):
2426         (WebCore::DOMWindow::setOnstorage):
2427         * page/DOMWindow.h:
2428         * page/DOMWindow.idl:
2429
2430 2009-05-30  Sam Weinig  <sam@webkit.org>
2431
2432         Reviewed by Mark Rowe.
2433
2434         Fix for https://bugs.webkit.org/show_bug.cgi?id=26110
2435         Update online/offline events to match the current spec.
2436         - Also adds window.ononline and window.onoffline event handler
2437           properties.
2438
2439         * page/DOMWindow.cpp:
2440         (WebCore::DOMWindow::onoffline):
2441         (WebCore::DOMWindow::setOnoffline):
2442         (WebCore::DOMWindow::ononline):
2443         (WebCore::DOMWindow::setOnonline):
2444         * page/DOMWindow.h:
2445         * page/DOMWindow.idl:
2446         * page/Page.cpp:
2447         (WebCore::networkStateChanged):
2448
2449 2009-05-31  Dirk Schulze  <krit@webkit.org>
2450
2451         Reviewed by Nikolas Zimmermann.
2452
2453         WebKit needs cross-platform filter system
2454         [https://bugs.webkit.org/show_bug.cgi?id=19991]
2455
2456         Make use of the new filter system in WebCore for SVG. Deleted Mac bindings
2457         and replace it by a platform independent code. Calculation of subRegions
2458         is missing but needed for a first filter effect.
2459
2460         * GNUmakefile.am:
2461         * WebCore.pro:
2462         * WebCore.vcproj/WebCore.vcproj:
2463         * WebCore.xcodeproj/project.pbxproj:
2464         * platform/graphics/filters/Filter.h:
2465         (WebCore::Filter::~Filter):
2466         (WebCore::Filter::setSourceImage):
2467         * rendering/SVGRenderSupport.cpp:
2468         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
2469         (WebCore::SVGRenderBase::finishRenderSVGContent):
2470         * svg/FilterBuilder.h:
2471         (WebCore::FilterBuilder::lastEffect):
2472         * svg/SVGFEBlendElement.cpp:
2473         (WebCore::SVGFEBlendElement::SVGFEBlendElement):
2474         (WebCore::SVGFEBlendElement::build):
2475         * svg/SVGFEBlendElement.h:
2476         * svg/SVGFEColorMatrixElement.cpp:
2477         (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
2478         (WebCore::SVGFEColorMatrixElement::build):
2479         * svg/SVGFEColorMatrixElement.h:
2480         * svg/SVGFEComponentTransferElement.cpp:
2481         (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
2482         (WebCore::SVGFEComponentTransferElement::build):
2483         * svg/SVGFEComponentTransferElement.h:
2484         * svg/SVGFECompositeElement.cpp:
2485         (WebCore::SVGFECompositeElement::SVGFECompositeElement):
2486         (WebCore::SVGFECompositeElement::build):
2487         * svg/SVGFECompositeElement.h:
2488         * svg/SVGFEDiffuseLightingElement.cpp:
2489         (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
2490         (WebCore::SVGFEDiffuseLightingElement::build):
2491         * svg/SVGFEDiffuseLightingElement.h:
2492         * svg/SVGFEDisplacementMapElement.cpp:
2493         (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
2494         (WebCore::SVGFEDisplacementMapElement::build):
2495         * svg/SVGFEDisplacementMapElement.h:
2496         * svg/SVGFEFloodElement.cpp:
2497         (WebCore::SVGFEFloodElement::SVGFEFloodElement):
2498         (WebCore::SVGFEFloodElement::build):
2499         * svg/SVGFEFloodElement.h:
2500         * svg/SVGFEGaussianBlurElement.cpp:
2501         (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
2502         (WebCore::SVGFEGaussianBlurElement::build):
2503         * svg/SVGFEGaussianBlurElement.h:
2504         * svg/SVGFEImageElement.cpp:
2505         (WebCore::SVGFEImageElement::SVGFEImageElement):
2506         (WebCore::SVGFEImageElement::notifyFinished):
2507         (WebCore::SVGFEImageElement::build):
2508         * svg/SVGFEImageElement.h:
2509         * svg/SVGFEMergeElement.cpp:
2510         (WebCore::SVGFEMergeElement::SVGFEMergeElement):
2511         (WebCore::SVGFEMergeElement::build):
2512         * svg/SVGFEMergeElement.h:
2513         * svg/SVGFEOffsetElement.cpp:
2514         (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
2515         (WebCore::SVGFEOffsetElement::build):
2516         * svg/SVGFEOffsetElement.h:
2517         * svg/SVGFESpecularLightingElement.cpp:
2518         (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
2519         (WebCore::SVGFESpecularLightingElement::build):
2520         * svg/SVGFESpecularLightingElement.h:
2521         * svg/SVGFETileElement.cpp:
2522         (WebCore::SVGFETileElement::SVGFETileElement):
2523         (WebCore::SVGFETileElement::build):
2524         * svg/SVGFETileElement.h:
2525         * svg/SVGFETurbulenceElement.cpp:
2526         (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
2527         (WebCore::SVGFETurbulenceElement::build):
2528         * svg/SVGFETurbulenceElement.h:
2529         * svg/SVGFilterElement.cpp:
2530         (WebCore::SVGFilterElement::canvasResource):
2531         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
2532         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
2533         * svg/SVGFilterPrimitiveStandardAttributes.h:
2534         (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement):
2535         * svg/graphics/SVGResourceFilter.cpp:
2536         (WebCore::SVGResourceFilter::SVGResourceFilter):
2537         (WebCore::SVGResourceFilter::addFilterEffect):
2538         (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
2539         (WebCore::SVGResourceFilter::prepareFilter):
2540         (WebCore::SVGResourceFilter::applyFilter):
2541         (WebCore::SVGResourceFilter::externalRepresentation):
2542         * svg/graphics/SVGResourceFilter.h:
2543         (WebCore::SVGResourceFilter::filterBoundingBox):
2544         (WebCore::SVGResourceFilter::setFilterBoundingBox):
2545         (WebCore::SVGResourceFilter::itemBoundingBox):
2546         (WebCore::SVGResourceFilter::setItemBoundingBox):
2547         (WebCore::SVGResourceFilter::builder):
2548
2549 2009-05-31  Dirk Schulze  <krit@webkit.org>
2550
2551         Reviewed by Nikolas Zimmermann.
2552
2553         WebKit needs cross-platform filter system
2554         [https://bugs.webkit.org/show_bug.cgi?id=19991]
2555
2556         Adding 'in1' attribute support for <feFlood>, as specified in SVG 1.1.
2557         This change helps creating test cases, once filters are activated.
2558
2559         * svg/SVGFEFloodElement.cpp:
2560         (WebCore::SVGFEFloodElement::SVGFEFloodElement):
2561         (WebCore::SVGFEFloodElement::parseMappedAttribute):
2562         (WebCore::SVGFEFloodElement::build):
2563         * svg/SVGFEFloodElement.h:
2564         * svg/SVGFEFloodElement.idl:
2565         * svg/graphics/filters/SVGFEFlood.cpp:
2566         (WebCore::FEFlood::FEFlood):
2567         (WebCore::FEFlood::create):
2568         * svg/graphics/filters/SVGFEFlood.h:
2569
2570 2009-05-31  Dirk Schulze  <krit@webkit.org>
2571
2572         Reviewed by Nikolas Zimmermann.
2573
2574         WebKit needs cross-platform filter system
2575         [https://bugs.webkit.org/show_bug.cgi?id=19991]
2576
2577         Replace all occurrences of SVGResourceFilter by Filter. This is the last 
2578         step for a SVG independent filter system. Every other part of WebCore can
2579         use the filter system by creating a new Filter object.
2580
2581         * GNUmakefile.am:
2582         * WebCore.pro:
2583         * WebCore.xcodeproj/project.pbxproj:
2584         * platform/graphics/filters/FEBlend.cpp:
2585         (WebCore::FEBlend::apply):
2586         * platform/graphics/filters/FEBlend.h:
2587         * platform/graphics/filters/FEColorMatrix.cpp:
2588         (WebCore::FEColorMatrix::apply):
2589         * platform/graphics/filters/FEColorMatrix.h:
2590         * platform/graphics/filters/FEComponentTransfer.cpp:
2591         (WebCore::FEComponentTransfer::apply):
2592         * platform/graphics/filters/FEComponentTransfer.h:
2593         * platform/graphics/filters/FEComposite.cpp:
2594         (WebCore::FEComposite::apply):
2595         * platform/graphics/filters/FEComposite.h:
2596         * platform/graphics/filters/Filter.h: Added.
2597         (WebCore::Filter::setSourceImage):
2598         (WebCore::Filter::sourceImage):
2599         * platform/graphics/filters/FilterEffect.h:
2600         * platform/graphics/filters/SourceAlpha.cpp:
2601         (WebCore::SourceAlpha::apply):
2602         * platform/graphics/filters/SourceAlpha.h:
2603         * platform/graphics/filters/SourceGraphic.cpp:
2604         (WebCore::SourceGraphic::apply):
2605         * platform/graphics/filters/SourceGraphic.h:
2606         * svg/Filter.cpp: Removed.
2607         * svg/Filter.h: Removed.
2608         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
2609         (WebCore::FEConvolveMatrix::apply):
2610         * svg/graphics/filters/SVGFEConvolveMatrix.h:
2611         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
2612         (WebCore::FEDiffuseLighting::apply):
2613         * svg/graphics/filters/SVGFEDiffuseLighting.h:
2614         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
2615         (WebCore::FEDisplacementMap::apply):
2616         * svg/graphics/filters/SVGFEDisplacementMap.h:
2617         * svg/graphics/filters/SVGFEFlood.cpp:
2618         (WebCore::FEFlood::apply):
2619         * svg/graphics/filters/SVGFEFlood.h:
2620         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
2621         (WebCore::FEGaussianBlur::apply):
2622         * svg/graphics/filters/SVGFEGaussianBlur.h:
2623         * svg/graphics/filters/SVGFEImage.cpp:
2624         (WebCore::FEImage::apply):
2625         * svg/graphics/filters/SVGFEImage.h:
2626         * svg/graphics/filters/SVGFEMerge.cpp:
2627         (WebCore::FEMerge::apply):
2628         * svg/graphics/filters/SVGFEMerge.h:
2629         * svg/graphics/filters/SVGFEMorphology.cpp:
2630         (WebCore::FEMorphology::apply):
2631         * svg/graphics/filters/SVGFEMorphology.h:
2632         * svg/graphics/filters/SVGFEOffset.cpp:
2633         (WebCore::FEOffset::apply):
2634         * svg/graphics/filters/SVGFEOffset.h:
2635         * svg/graphics/filters/SVGFESpecularLighting.cpp:
2636         (WebCore::FESpecularLighting::apply):
2637         * svg/graphics/filters/SVGFESpecularLighting.h:
2638         * svg/graphics/filters/SVGFETile.cpp:
2639         (WebCore::FETile::apply):
2640         * svg/graphics/filters/SVGFETile.h:
2641         * svg/graphics/filters/SVGFETurbulence.cpp:
2642         (WebCore::FETurbulence::apply):
2643         * svg/graphics/filters/SVGFETurbulence.h:
2644         * svg/graphics/filters/SVGFilter.cpp: Added.
2645         (WebCore::SVGFilter::SVGFilter):
2646         (WebCore::SVGFilter::calculateEffectSubRegion):
2647         (WebCore::SVGFilter::create):
2648         * svg/graphics/filters/SVGFilter.h: Added.
2649
2650 2009-05-30  Kevin Ollivier  <kevino@theolliviers.com>
2651
2652         Build fix for platforms without plugins support.
2653
2654         * plugins/PluginViewNone.cpp:
2655         (WebCore::PluginView::userAgentStatic):
2656         (WebCore::PluginView::getValueStatic):
2657
2658 2009-05-30  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2659
2660         Reviewed by Darin Adler.
2661
2662         Fixes: https://bugs.webkit.org/show_bug.cgi?id=25979
2663
2664         Fix regression, local WML files won't load anymore, as the mimetype isn't correctly detected.    
2665         Bug filed at <rdar://problem/6917571> to cover this CFNetwork limitation.
2666
2667         * platform/network/mac/ResourceHandleMac.mm:
2668         (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
2669
2670 2009-05-29  Sam Weinig  <sam@webkit.org>
2671
2672         Reviewed by Anders Carlsson.
2673
2674         Fix for https://bugs.webkit.org/show_bug.cgi?id=26091
2675         Make storage events match the current spec.
2676         - Storage event listeners are added to the window.
2677         - Storage events are dispatched to the window.
2678
2679         Updated existing tests.
2680
2681         * dom/Document.cpp:
2682         (WebCore::Document::dispatchWindowEvent):
2683         * dom/Document.h:
2684         * dom/Node.cpp:
2685         * dom/Node.h:
2686         * html/HTMLBodyElement.cpp:
2687         (WebCore::HTMLBodyElement::parseMappedAttribute):
2688         * storage/LocalStorageArea.cpp:
2689         (WebCore::LocalStorageArea::dispatchStorageEvent):
2690         * storage/SessionStorageArea.cpp:
2691         (WebCore::SessionStorageArea::dispatchStorageEvent):
2692
2693 2009-05-30  Darin Adler  <darin@apple.com>
2694
2695         Reviewed by Adele Peterson.
2696
2697         Bug 26097: REGRESSION (r44283): Tab key doesn't work when focus is on a <select> element
2698
2699         Test: fast/forms/focus-control-to-page.html
2700
2701         * dom/SelectElement.h: Made destructor protected. Tweaked a bit.
2702
2703         * html/HTMLSelectElement.cpp: Removed unneeded includes.
2704         (WebCore::HTMLSelectElement::remove): Removed unneeded range check of the
2705         result of optionToListIndex.
2706         (WebCore::HTMLSelectElement::parseMappedAttribute): Removed code to set the
2707         unused attribute, m_minwidth.
2708         (WebCore::HTMLSelectElement::defaultEventHandler): The actual bug fix.
2709         Call through to the base class defaultEventHandler if the event hasn't
2710         been handled yet.
2711
2712         * html/HTMLSelectElement.h: Removed unneeded includes. Made a lot more functions
2713         private. Removed unused minWidth function and m_minwidth data member.
2714
2715 2009-05-30  Fridrich Strba  <fridrich.strba@bluewin.ch>
2716
2717         Reviewed by Holger Freyther.
2718
2719         The two KeyboardCodes.h files are basically identical and the
2720         qt one is properly #ifdef-ed for different win32 systems. Share
2721         them between Qt and Gtk implementations.
2722
2723         * GNUmakefile.am:
2724         * platform/KeyboardCodes.h: Copied from WebCore/platform/qt/KeyboardCodes.h.
2725         * platform/gtk/KeyboardCodes.h: Removed.
2726         * platform/qt/KeyboardCodes.h: Removed.
2727
2728 2009-05-30  Jeremy Orlow  <jorlow@chromium.org>
2729
2730         Reviewed by Sam Weinig.
2731
2732         LocalStorage and SessionStorage's implicit setters do not correctly 
2733         handle null.  The custom JS bindings should convert to strings
2734         unconditionally and not try to handle null specially.
2735         https://bugs.webkit.org/show_bug.cgi?id=25970
2736
2737         Tests: storage/domstorage/localstorage/string-conversion.html
2738                storage/domstorage/sessionstorage/string-conversion.html
2739
2740         * bindings/js/JSStorageCustom.cpp:
2741         (WebCore::JSStorage::customPut):
2742
2743 2009-05-30  Dan Bernstein  <mitz@apple.com>
2744
2745         Reviewed by Darin Adler.
2746
2747         - fix <rdar://problem/6935192> REGRESSION (Safari 3-TOT): Scroll
2748           bars in key window draw as inactive if the WebView is not active
2749
2750         Test: platform/mac/scrollbars/key-window-not-first-responder.html
2751
2752         * platform/mac/ScrollbarThemeMac.mm:
2753         (WebCore::ScrollbarThemeMac::paint): Use the window's key state instead
2754         of the WebView's first responder state to switch between active and
2755         inactive state.
2756
2757 2009-05-30  Dan Bernstein  <mitz@apple.com>
2758
2759         Reviewed by Simon Fraser.
2760
2761         - fix https://bugs.webkit.org/show_bug.cgi?id=18445
2762           <rdar://problem/5931174> Assertion failure in CSSGradientValue::image
2763           with -webkit-gradient as body's background
2764
2765         Test: fast/backgrounds/body-generated-image-propagated-to-root.html
2766
2767         * rendering/RenderBoxModelObject.cpp:
2768         (WebCore::RenderBoxModelObject::paintFillLayerExtended): Check if this
2769         is the root element painting a background layer propagated from the
2770         body, and if it is, use the body's renderer as the client to
2771         StyleImage::image().
2772
2773 2009-05-30  Holger Hans Peter Freyther  <zecke@selfish.org>
2774
2775         Unreviewed build fix for AXObjectCache.
2776
2777         For !HAVE(ACCESSIBILITY) postNotification was defined twice. Move
2778         that into the #ifdef.
2779
2780         * accessibility/AXObjectCache.cpp:
2781
2782 2009-05-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
2783
2784         Reviewed by George Staikos.
2785
2786         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26072
2787
2788         Add support for the last missing WML element: <select>. This patch adds WMLSelectElement, providing
2789         the same functionality HTMLSelectElement has. The WML specific features will follow soon.
2790     
2791         Add simple testcase covering <select> element rendering: fast/wml/select.wml
2792
2793         * GNUmakefile.am:
2794         * WebCore.pro:
2795         * WebCore.vcproj/WebCore.vcproj:
2796         * WebCore.xcodeproj/project.pbxproj:
2797         * dom/OptionElement.cpp:
2798         (WebCore::OptionElement::optionIndex):
2799         (WebCore::isOptionElement):
2800         * dom/OptionElement.h:
2801         * dom/OptionGroupElement.cpp:
2802         (WebCore::isOptionGroupElement):
2803         * dom/OptionGroupElement.h:
2804         * dom/SelectElement.cpp:
2805         (WebCore::SelectElement::accessKeySetSelectedIndex):
2806         (WebCore::toSelectElement):
2807         * dom/SelectElement.h:
2808         * html/HTMLOptionElement.cpp:
2809         (WebCore::HTMLOptionElement::index):
2810         * html/HTMLSelectElement.cpp:
2811         (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
2812         * rendering/RenderListBox.cpp:
2813         (WebCore::RenderListBox::paintItemForeground):
2814         * rendering/RenderMenuList.cpp:
2815         (WebCore::RenderMenuList::itemIsEnabled):
2816         (WebCore::RenderMenuList::itemIsLabel):
2817         * wml/WMLFormControlElement.cpp:
2818         (WebCore::WMLFormControlElement::attach):
2819         (WebCore::WMLFormControlElement::recalcStyle):
2820         * wml/WMLFormControlElement.h:
2821         * wml/WMLInputElement.cpp:
2822         (WebCore::WMLInputElement::attach):
2823         * wml/WMLOptGroupElement.cpp:
2824         (WebCore::WMLOptGroupElement::insertBefore):
2825         (WebCore::WMLOptGroupElement::replaceChild):
2826         (WebCore::WMLOptGroupElement::removeChild):
2827         (WebCore::WMLOptGroupElement::appendChild):
2828         (WebCore::WMLOptGroupElement::removeChildren):
2829         (WebCore::ownerSelectElement):
2830         (WebCore::WMLOptGroupElement::accessKeyAction):
2831         (WebCore::WMLOptGroupElement::childrenChanged):
2832         (WebCore::WMLOptGroupElement::parseMappedAttribute):
2833         (WebCore::WMLOptGroupElement::attach):
2834         (WebCore::WMLOptGroupElement::detach):
2835         (WebCore::WMLOptGroupElement::recalcSelectOptions):
2836         * wml/WMLOptionElement.cpp:
2837         (WebCore::ownerSelectElement):
2838         (WebCore::WMLOptionElement::accessKeyAction):
2839         (WebCore::WMLOptionElement::childrenChanged):
2840         (WebCore::WMLOptionElement::parseMappedAttribute):
2841         (WebCore::WMLOptionElement::attach):
2842         (WebCore::WMLOptionElement::detach):
2843         (WebCore::WMLOptionElement::insertedIntoDocument):
2844         * wml/WMLSelectElement.cpp: Added.
2845         (WebCore::WMLSelectElement::WMLSelectElement):
2846         (WebCore::WMLSelectElement::~WMLSelectElement):
2847         (WebCore::WMLSelectElement::formControlType):
2848         (WebCore::WMLSelectElement::isKeyboardFocusable):
2849         (WebCore::WMLSelectElement::isMouseFocusable):
2850         (WebCore::WMLSelectElement::selectAll):
2851         (WebCore::WMLSelectElement::recalcStyle):
2852         (WebCore::WMLSelectElement::dispatchFocusEvent):
2853         (WebCore::WMLSelectElement::dispatchBlurEvent):
2854         (WebCore::WMLSelectElement::selectedIndex):
2855         (WebCore::WMLSelectElement::setSelectedIndex):
2856         (WebCore::WMLSelectElement::saveFormControlState):
2857         (WebCore::WMLSelectElement::restoreFormControlState):
2858         (WebCore::WMLSelectElement::childrenChanged):
2859         (WebCore::WMLSelectElement::parseMappedAttribute):
2860         (WebCore::WMLSelectElement::createRenderer):
2861         (WebCore::WMLSelectElement::appendFormData):
2862         (WebCore::WMLSelectElement::optionToListIndex):
2863         (WebCore::WMLSelectElement::listToOptionIndex):
2864         (WebCore::WMLSelectElement::reset):
2865         (WebCore::WMLSelectElement::defaultEventHandler):
2866         (WebCore::WMLSelectElement::accessKeyAction):
2867         (WebCore::WMLSelectElement::setActiveSelectionAnchorIndex):
2868         (WebCore::WMLSelectElement::setActiveSelectionEndIndex):
2869         (WebCore::WMLSelectElement::updateListBoxSelection):
2870         (WebCore::WMLSelectElement::listBoxOnChange):
2871         (WebCore::WMLSelectElement::menuListOnChange):
2872         (WebCore::WMLSelectElement::activeSelectionStartListIndex):
2873         (WebCore::WMLSelectElement::activeSelectionEndListIndex):
2874         (WebCore::WMLSelectElement::accessKeySetSelectedIndex):
2875         (WebCore::WMLSelectElement::setRecalcListItems):
2876         (WebCore::WMLSelectElement::scrollToSelection):
2877         (WebCore::WMLSelectElement::insertedIntoTree):
2878         * wml/WMLSelectElement.h: Added.
2879         (WebCore::WMLSelectElement::canSelectAll):
2880         (WebCore::WMLSelectElement::canStartSelection):
2881         (WebCore::WMLSelectElement::size):
2882         (WebCore::WMLSelectElement::multiple):
2883         (WebCore::WMLSelectElement::listItems):
2884         * wml/WMLTagNames.in:
2885
2886 2009-05-29  David Levin  <levin@chromium.org>
2887
2888         Reviewed by NOBODY (build fix for windows).
2889
2890         http://trac.webkit.org/changeset/44279 left in a "Vector<WCHAR> localeNameBuf"
2891         that it was trying to replace.  Resulting in this variable being defined twice (and
2892         the second time incorrectly).
2893
2894         * platform/win/Language.cpp:
2895         (WebCore::localeInfo):
2896
2897 2009-05-29  Takeshi Yoshino  <tyoshino@google.com>
2898
2899         Reviewed by Darin Alder.
2900
2901         https://bugs.webkit.org/show_bug.cgi?id=26018
2902
2903         Fix behavior of the Element View of the Web Inspector for double
2904         clicking the element outline tree.
2905
2906         Double clicking the element outline tree should
2907         1) on attribute: enter attribute editing mode
2908         2) on text: enter text editing mode
2909         3) otherwise: change root node to the parent element of double clicked
2910            element.
2911
2912         Now, 3) is broken. For example, clicking <html> clears the element
2913         outline view.
2914
2915         rootDOMNode should be updated to this.representedObject.parentNode, not
2916         this.parent.representedObject which is parent inside the element
2917         outline tree itself.
2918
2919         * inspector/front-end/ElementsTreeOutline.js:
2920         (WebInspector.ElementsTreeElement.prototype.ondblclick):
2921
2922 2009-05-29  David Moore  <davemoore@google.com>
2923
2924         Reviewed by Darin Alder.
2925
2926         https://bugs.webkit.org/show_bug.cgi?id=26001
2927         Change many of the uses of String::adopt() to String::createUninitialized().
2928         This allows those strings to use an inlined buffer for their characters.
2929
2930         * dom/StyleElement.cpp:
2931         Loop over nodes to precompute length of string and then
2932         write the characters into the allocated inline buffer
2933         (WebCore::StyleElement::process):
2934         * dom/Text.cpp:
2935         Loop over nodes to precompute length of string and then
2936         write the characters into the allocated inline buffer
2937         (WebCore::Text::wholeText):
2938         (WebCore::Text::rendererIsNeeded):
2939         (WebCore::Text::createRenderer):
2940         (WebCore::Text::createWithLengthLimit):
2941         (WebCore::Text::formatForDebugger):
2942         * platform/text/String.cpp:
2943         (WebCore::String::append):
2944         (WebCore::String::insert):
2945         (WebCore::String::truncate):
2946         (WebCore::String::remove):
2947         * platform/text/StringBuilder.cpp:
2948         (WebCore::StringBuilder::toString):
2949         * platform/text/StringImpl.cpp:
2950         (WebCore::StringImpl::lower):
2951         (WebCore::StringImpl::upper):
2952         (WebCore::StringImpl::secure):
2953         (WebCore::StringImpl::foldCase):
2954         (WebCore::StringImpl::replace):
2955         * platform/text/TextCodecLatin1.cpp:
2956         (WebCore::TextCodecLatin1::decode):
2957         * platform/text/TextCodecUserDefined.cpp:
2958         (WebCore::TextCodecUserDefined::decode):
2959         * platform/win/Language.cpp:
2960         (WebCore::localeInfo):
2961
2962 2009-05-29  Takeshi Yoshino  <tyoshino@google.com>
2963
2964         Reviewed by Darin Alder.
2965
2966         Bug 25911: Apply href in base elements to anchors shown on the source viewer
2967         https://bugs.webkit.org/show_bug.cgi?id=25911
2968
2969         In rendering HTML sources, parse base elements to apply the base URI to
2970         anchors shown on the source viewer.
2971
2972         This issue was originally reported to the Chromium issue tracker.
2973         http://code.google.com/p/chromium/issues/detail?id=2418
2974
2975         Test: fast/frames/viewsource-link-on-href-value.html
2976
2977         * html/HTMLViewSourceDocument.cpp:
2978         (WebCore::HTMLViewSourceDocument::addViewSourceToken):
2979
2980 2009-05-29  Rob Buis  <rwlbuis@gmail.com>
2981
2982         Reviewed by David Hyatt.
2983
2984         https://bugs.webkit.org/show_bug.cgi?id=22429
2985         document.styleSheets collection ignores media=presentation
2986
2987         Ensure that stylesheets though <link> show up in document.styleSheets regardless of media attribute.
2988
2989         Test: fast/css/sheet-collection-link.html
2990
2991         * html/HTMLLinkElement.cpp:
2992         (WebCore::HTMLLinkElement::process):
2993
2994 2009-05-29  Jian Li  <jianli@chromium.org>
2995
2996         Reviewed by Dimitri Glazkov.
2997
2998         https://bugs.webkit.org/show_bug.cgi?id=26069
2999         Fix a crash in custom V8 bindings code for XMLHttpRequest.
3000
3001         Test: fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html
3002
3003         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3004         (WebCore::CALLBACK_FUNC_DECL):
3005
3006 2009-05-29  David Levin  <levin@chromium.org>
3007
3008         Reviewed by Darin Adler.
3009
3010         Bug 26074: SQLTransaction::executeSQL does an unnecessary call to String::copy.
3011         https://bugs.webkit.org/show_bug.cgi?id=26074
3012
3013         The constructor for SQLStatement already does a copy for this string.
3014
3015         * storage/SQLTransaction.cpp:
3016         (WebCore::SQLTransaction::executeSQL):
3017
3018 2009-05-29  Darin Adler  <darin@apple.com>
3019
3020         Fix build; the new Cairo code compiled on Windows only.
3021
3022         * platform/graphics/gtk/FontPlatformData.h: Added syntheticBold
3023         and syntheticOblique functions as in the Windows version to make it
3024         easier to use this cross-platform. Later we can make data members
3025         private as in the Windows version.
3026         * platform/graphics/mac/FontPlatformData.h: Ditto.
3027
3028 2009-05-29  Alexander Macdonald  <alexmac@adobe.com>
3029
3030         Reviewed by Darin Adler.
3031
3032         Added support for synthetic bold/oblique font rendering
3033         on platforms that use cairo.
3034
3035         * platform/graphics/SimpleFontData.h:
3036         * platform/graphics/cairo/FontCairo.cpp:
3037         (WebCore::Font::drawGlyphs):
3038         * platform/graphics/gtk/SimpleFontDataGtk.cpp:
3039         (WebCore::SimpleFontData::platformInit):
3040         * platform/graphics/gtk/SimpleFontDataPango.cpp:
3041         (WebCore::SimpleFontData::platformInit):
3042         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
3043         (WebCore::SimpleFontData::platformInit):
3044
3045 2009-05-29  Chris Fleizach  <cfleizach@apple.com>
3046
3047         Reviewed by Beth Dakin.
3048
3049         Bug 26024: AX: possible to fail assertion because AXPostNotification calls accessibilityIsIgnored
3050         https://bugs.webkit.org/show_bug.cgi?id=26024
3051
3052         AX notifications are posted after a one shot timer so that notifications are not performed mid-layout.
3053         Consolidated postNotification and postNotificationToElement into one method.
3054
3055         * accessibility/AXObjectCache.cpp:
3056         (WebCore::AXObjectCache::AXObjectCache):
3057         (WebCore::AXObjectCache::notificationPostTimerFired):
3058         (WebCore::AXObjectCache::postNotification):
3059         (WebCore::AXObjectCache::selectedChildrenChanged):
3060         * accessibility/AXObjectCache.h:
3061         (WebCore::AXObjectCache::postNotification):
3062         (WebCore::AXObjectCache::postPlatformNotification):
3063         * accessibility/AccessibilityRenderObject.cpp:
3064         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
3065         * accessibility/chromium/AXObjectCacheChromium.cpp:
3066         (WebCore::AXObjectCache::postPlatformNotification):
3067         * accessibility/gtk/AXObjectCacheAtk.cpp:
3068         (WebCore::AXObjectCache::postPlatformNotification):
3069         * accessibility/mac/AXObjectCacheMac.mm:
3070         (WebCore::AXObjectCache::postPlatformNotification):
3071         * accessibility/win/AXObjectCacheWin.cpp:
3072         (WebCore::AXObjectCache::postPlatformNotification):
3073         * dom/Document.cpp:
3074         (WebCore::Document::implicitClose):
3075         * editing/Editor.cpp:
3076         (WebCore::Editor::respondToChangedContents):
3077         * editing/mac/SelectionControllerMac.mm:
3078         (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
3079         * page/FrameView.cpp:
3080         (WebCore::FrameView::layout):
3081         * rendering/RenderTextControl.cpp:
3082         (WebCore::RenderTextControl::setInnerTextValue):
3083
3084 2009-05-29  Brent Fulgham  <bfulgham@webkit.org>
3085
3086         Reviewed by Adam Roben.
3087
3088         Build fix for Windows Cairo target.
3089         https://bugs.webkit.org/show_bug.cgi?id=25972
3090
3091         Compiler mistakenly selects SMILTime min/max instead of STL version,
3092         resulting in a build error.  This change makes the meaning of the
3093         min/max explicit and avoids the problem.
3094
3095         * html/TimeRanges.h:
3096         (WebCore::TimeRanges::Range::unionWithOverlappingOrContiguousRange):
3097
3098 2009-05-29  Gustavo Noronha Silva  <gns@gnome.org>
3099
3100         Reviewed by Jan Alonzo.
3101
3102         Make SoupMessage a member of ResourceRequest, instead of creating
3103         it in startHttp. Implement updating of ResourceRequest from
3104         SoupMessage, and vice versa.
3105
3106         * GNUmakefile.am:
3107         * platform/network/soup/ResourceHandleSoup.cpp:
3108         (WebCore::ResourceHandle::~ResourceHandle):
3109         (WebCore::gotHeadersCallback):
3110         (WebCore::ResourceHandle::startHttp):
3111         * platform/network/soup/ResourceRequest.h:
3112         (WebCore::ResourceRequest::ResourceRequest):
3113         (WebCore::ResourceRequest::~ResourceRequest):
3114         * platform/network/soup/ResourceRequestSoup.cpp: Added.
3115         (WTF::SoupURI):
3116         (WebCore::ResourceRequest::soupMessage):
3117         (WebCore::ResourceRequest::ResourceRequest):
3118         (WebCore::ResourceRequest::doUpdateResourceRequest):
3119         (WebCore::ResourceRequest::doUpdatePlatformRequest):
3120
3121 2009-05-28  Dmitry Titov  <dimich@chromium.org>
3122
3123         Reviewed by Dimitri Glazkov.
3124
3125         https://bugs.webkit.org/show_bug.cgi?id=26068
3126         V8: Remove the remaining b8::Locker usage in worker code.
3127         This completes the fix for https://bugs.webkit.org/show_bug.cgi?id=25944,
3128         since the patches for enabling timers and that bug have "crossed in the queue".
3129         Existing LayoutTests/fast/workers/worker-timeout.html covers this fix (will start work in Chromium).
3130
3131         * bindings/v8/ScheduledAction.cpp:
3132         (WebCore::ScheduledAction::execute):
3133
3134 2009-05-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3135
3136         Reviewed by Xan Lopez.
3137
3138         Simplify the Accept-Encoding header we are sending out, for it
3139         seems some servers do not enjoy parsing the full, explicit
3140         version.
3141
3142         * platform/network/soup/ResourceHandleSoup.cpp:
3143         (WebCore::ResourceHandle::startHttp):
3144
3145 2009-05-28  Dirk Schulze  <krit@webkit.org>
3146
3147         Reviewed by Nikolas Zimmermann.
3148
3149         Added a new build flag --filters. This replaces the old --svg-filters and enables
3150         other parts of WebKit to use some basic filters of platform/graphics/filters if needed.
3151         This patch also fixes a bug in dom/DOMImplementation.cpp where we used SVG_FILTER. This flag
3152         doesn't exist and was replaced by FILTERS as well as all SVG_FILTERS occurrences.
3153         Filters are not working yet. This patch is just a preperation. Filters are deactivated by
3154         default. 
3155
3156         * Configurations/FeatureDefines.xcconfig:
3157         * DerivedSources.make:
3158         * GNUmakefile.am:
3159         * WebCore.pro:
3160         * bindings/objc/DOM.mm:
3161         (WebCore::createElementClassMap):
3162         * dom/DOMImplementation.cpp:
3163         (WebCore::isSVG10Feature):
3164         (WebCore::isSVG11Feature):
3165         * page/DOMWindow.idl:
3166         * platform/graphics/filters/FEBlend.cpp:
3167         * platform/graphics/filters/FEBlend.h:
3168         * platform/graphics/filters/FEColorMatrix.cpp:
3169         * platform/graphics/filters/FEColorMatrix.h:
3170         * platform/graphics/filters/FEComponentTransfer.cpp:
3171         * platform/graphics/filters/FEComponentTransfer.h:
3172         * platform/graphics/filters/FEComposite.cpp:
3173         * platform/graphics/filters/FEComposite.h:
3174         * platform/graphics/filters/FilterEffect.cpp:
3175         * platform/graphics/filters/FilterEffect.h:
3176         * platform/graphics/filters/SourceAlpha.cpp:
3177         * platform/graphics/filters/SourceAlpha.h:
3178         * platform/graphics/filters/SourceGraphic.cpp:
3179         * platform/graphics/filters/SourceGraphic.h:
3180         * rendering/RenderSVGContainer.cpp:
3181         (WebCore::RenderSVGContainer::selfWillPaint):
3182         * rendering/RenderSVGModelObject.cpp:
3183         * rendering/RenderSVGRoot.cpp:
3184         (WebCore::RenderSVGRoot::selfWillPaint):
3185         * rendering/SVGRenderSupport.cpp:
3186         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
3187         (WebCore::SVGRenderBase::finishRenderSVGContent):
3188         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
3189         * svg/Filter.cpp:
3190         * svg/Filter.h:
3191         * svg/FilterBuilder.cpp:
3192         * svg/FilterBuilder.h:
3193         * svg/SVGComponentTransferFunctionElement.cpp:
3194         * svg/SVGComponentTransferFunctionElement.h:
3195         * svg/SVGComponentTransferFunctionElement.idl:
3196         * svg/SVGFEBlendElement.cpp:
3197         * svg/SVGFEBlendElement.h:
3198         * svg/SVGFEBlendElement.idl:
3199         * svg/SVGFEColorMatrixElement.cpp:
3200         * svg/SVGFEColorMatrixElement.h:
3201         * svg/SVGFEColorMatrixElement.idl:
3202         * svg/SVGFEComponentTransferElement.cpp:
3203         * svg/SVGFEComponentTransferElement.h:
3204         * svg/SVGFEComponentTransferElement.idl:
3205         * svg/SVGFECompositeElement.cpp:
3206         * svg/SVGFECompositeElement.h:
3207         * svg/SVGFECompositeElement.idl:
3208         * svg/SVGFEDiffuseLightingElement.cpp:
3209         * svg/SVGFEDiffuseLightingElement.h:
3210         * svg/SVGFEDiffuseLightingElement.idl:
3211         * svg/SVGFEDisplacementMapElement.cpp:
3212         * svg/SVGFEDisplacementMapElement.h:
3213         * svg/SVGFEDisplacementMapElement.idl:
3214         * svg/SVGFEDistantLightElement.cpp:
3215         * svg/SVGFEDistantLightElement.h:
3216         * svg/SVGFEDistantLightElement.idl:
3217         * svg/SVGFEFloodElement.cpp:
3218         * svg/SVGFEFloodElement.h:
3219         * svg/SVGFEFloodElement.idl:
3220         * svg/SVGFEFuncAElement.cpp:
3221         * svg/SVGFEFuncAElement.h:
3222         * svg/SVGFEFuncAElement.idl:
3223         * svg/SVGFEFuncBElement.cpp:
3224         * svg/SVGFEFuncBElement.h:
3225         * svg/SVGFEFuncBElement.idl:
3226         * svg/SVGFEFuncGElement.cpp:
3227         * svg/SVGFEFuncGElement.h:
3228         * svg/SVGFEFuncGElement.idl:
3229         * svg/SVGFEFuncRElement.cpp:
3230         * svg/SVGFEFuncRElement.h:
3231         * svg/SVGFEFuncRElement.idl:
3232         * svg/SVGFEGaussianBlurElement.cpp:
3233         * svg/SVGFEGaussianBlurElement.h:
3234         * svg/SVGFEGaussianBlurElement.idl:
3235         * svg/SVGFEImageElement.cpp:
3236         * svg/SVGFEImageElement.h:
3237         * svg/SVGFEImageElement.idl:
3238         * svg/SVGFELightElement.cpp:
3239         * svg/SVGFELightElement.h:
3240         * svg/SVGFEMergeElement.cpp:
3241         * svg/SVGFEMergeElement.h:
3242         * svg/SVGFEMergeElement.idl:
3243         * svg/SVGFEMergeNodeElement.cpp:
3244         * svg/SVGFEMergeNodeElement.h:
3245         * svg/SVGFEMergeNodeElement.idl:
3246         * svg/SVGFEOffsetElement.cpp:
3247         * svg/SVGFEOffsetElement.h:
3248         * svg/SVGFEOffsetElement.idl:
3249         * svg/SVGFEPointLightElement.cpp:
3250         * svg/SVGFEPointLightElement.h:
3251         * svg/SVGFEPointLightElement.idl:
3252         * svg/SVGFESpecularLightingElement.cpp:
3253         * svg/SVGFESpecularLightingElement.h:
3254         * svg/SVGFESpecularLightingElement.idl:
3255         * svg/SVGFESpotLightElement.cpp:
3256         * svg/SVGFESpotLightElement.h:
3257         * svg/SVGFESpotLightElement.idl:
3258         * svg/SVGFETileElement.cpp:
3259         * svg/SVGFETileElement.h:
3260         * svg/SVGFETileElement.idl:
3261         * svg/SVGFETurbulenceElement.cpp:
3262         * svg/SVGFETurbulenceElement.h:
3263         * svg/SVGFETurbulenceElement.idl:
3264         * svg/SVGFilterElement.cpp:
3265         * svg/SVGFilterElement.h:
3266         * svg/SVGFilterElement.idl:
3267         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3268         * svg/SVGFilterPrimitiveStandardAttributes.h:
3269         * svg/graphics/SVGResourceFilter.cpp:
3270         * svg/graphics/SVGResourceFilter.h:
3271         * svg/graphics/cairo/SVGResourceFilterCairo.cpp:
3272         * svg/graphics/cg/SVGResourceFilterCg.cpp:
3273         * svg/graphics/cg/SVGResourceFilterCg.mm:
3274         * svg/graphics/filters/SVGDistantLightSource.h:
3275         * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
3276         * svg/graphics/filters/SVGFEConvolveMatrix.h:
3277         * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
3278         * svg/graphics/filters/SVGFEDiffuseLighting.h:
3279         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
3280         * svg/graphics/filters/SVGFEDisplacementMap.h:
3281         * svg/graphics/filters/SVGFEFlood.cpp:
3282         * svg/graphics/filters/SVGFEFlood.h:
3283         * svg/graphics/filters/SVGFEGaussianBlur.cpp:
3284         * svg/graphics/filters/SVGFEGaussianBlur.h:
3285         * svg/graphics/filters/SVGFEImage.cpp:
3286         * svg/graphics/filters/SVGFEImage.h:
3287         * svg/graphics/filters/SVGFEMerge.cpp:
3288         * svg/graphics/filters/SVGFEMerge.h:
3289         * svg/graphics/filters/SVGFEMorphology.cpp:
3290         * svg/graphics/filters/SVGFEMorphology.h:
3291         * svg/graphics/filters/SVGFEOffset.cpp:
3292         * svg/graphics/filters/SVGFEOffset.h:
3293         * svg/graphics/filters/SVGFESpecularLighting.cpp:
3294         * svg/graphics/filters/SVGFESpecularLighting.h:
3295         * svg/graphics/filters/SVGFETile.cpp:
3296         * svg/graphics/filters/SVGFETile.h:
3297         * svg/graphics/filters/SVGFETurbulence.cpp:
3298         * svg/graphics/filters/SVGFETurbulence.h:
3299         * svg/graphics/filters/SVGFilterEffect.cpp:
3300         * svg/graphics/filters/SVGFilterEffect.h:
3301         * svg/graphics/filters/SVGLightSource.cpp:
3302         * svg/graphics/filters/SVGLightSource.h:
3303         * svg/graphics/filters/SVGPointLightSource.h:
3304         * svg/graphics/filters/SVGSpotLightSource.h:
3305         * svg/graphics/filters/cg/SVGFEHelpersCg.h:
3306         * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
3307         * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
3308         * svg/graphics/filters/cg/WKArithmeticFilter.h:
3309         * svg/graphics/filters/cg/WKArithmeticFilter.m:
3310         * svg/graphics/filters/cg/WKComponentMergeFilter.h:
3311         * svg/graphics/filters/cg/WKComponentMergeFilter.m:
3312         * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
3313         * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
3314         * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
3315         * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
3316         * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
3317         * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
3318         * svg/graphics/filters/cg/WKDistantLightFilter.h:
3319         * svg/graphics/filters/cg/WKDistantLightFilter.m:
3320         * svg/graphics/filters/cg/WKGammaTransferFilter.h:
3321         * svg/graphics/filters/cg/WKGammaTransferFilter.m:
3322         * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
3323         * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
3324         * svg/graphics/filters/cg/WKLinearTransferFilter.h:
3325         * svg/graphics/filters/cg/WKLinearTransferFilter.m:
3326         * svg/graphics/filters/cg/WKNormalMapFilter.h:
3327         * svg/graphics/filters/cg/WKNormalMapFilter.m:
3328         * svg/graphics/filters/cg/WKPointLightFilter.h:
3329         * svg/graphics/filters/cg/WKPointLightFilter.m:
3330         * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
3331         * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
3332         * svg/graphics/filters/cg/WKSpotLightFilter.h:
3333         * svg/graphics/filters/cg/WKSpotLightFilter.m:
3334         * svg/graphics/filters/cg/WKTableTransferFilter.h:
3335         * svg/graphics/filters/cg/WKTableTransferFilter.m:
3336         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
3337         * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
3338         * svg/graphics/qt/SVGResourceFilterQt.cpp:
3339         * svg/graphics/skia/SVGResourceFilterSkia.cpp:
3340         * svg/svgtags.in:
3341
3342 2009-05-28  Brett Wilson  <brettw@chromium.org>
3343
3344         Unreviewed, build fix.
3345
3346         https://bugs.webkit.org/show_bug.cgi?id=26067
3347
3348         Add casts for scale function to make more explicit what is happening
3349         and fix a compiler warning.
3350
3351         * platform/graphics/IntSize.h:
3352         (WebCore::IntSize::scale):
3353
3354 2009-05-28  Sam Weinig  <sam@webkit.org>
3355
3356         Reviewed by Darin Adler.
3357
3358         Remove the returnValueSlot concept from JSDOMWindowBase. Now that windows
3359         are not cleared on navigation it is no longer necessary.
3360
3361         * bindings/js/JSDOMWindowBase.cpp:
3362         (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
3363         (WebCore::JSDOMWindowBase::willRemoveFromWindowShell):
3364         * bindings/js/JSDOMWindowBase.h:
3365         * bindings/js/JSDOMWindowCustom.cpp:
3366         (WebCore::JSDOMWindow::showModalDialog):
3367
3368 2009-05-19  Xan Lopez  <xlopez@igalia.com>
3369
3370         Reviewed by Jan Alonzo and Gustavo Noronha.
3371
3372         https://bugs.webkit.org/show_bug.cgi?id=25415
3373         [GTK][ATK] Please implement support for get_text_at_offset
3374
3375         Implement atk_text_get_text_{at,after,before}_offset.
3376
3377         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3378
3379 2009-05-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3380
3381         Rubber-stamped by Darin Adler.
3382
3383         Remove unnecessary destructor from InputElementData/OptionElementData.
3384
3385         * dom/InputElement.cpp:
3386         * dom/InputElement.h:
3387         * dom/OptionElement.cpp:
3388         * dom/OptionElement.h:
3389
3390 2009-05-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
3391
3392         Reviewed by Darin Adler.
3393
3394         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26062
3395
3396         Refactor code from all virtual methods in HTMLSelectElement (that are also needed for WMLSelectElement)
3397         in the recently introduced SelectElement abstract base class. Follow the same design sheme that InputElement uses.
3398
3399         A follow-up patch can now easily add WMLSelectElement.
3400
3401         * dom/OptionElement.h:
3402         * dom/SelectElement.cpp:
3403         (WebCore::SelectElement::selectAll):
3404         (WebCore::SelectElement::saveLastSelection):
3405         (WebCore::isOptionElement):
3406         (WebCore::isOptionGroupElement):
3407         (WebCore::SelectElement::nextSelectableListIndex):
3408         (WebCore::SelectElement::previousSelectableListIndex):
3409         (WebCore::SelectElement::setActiveSelectionAnchorIndex):
3410         (WebCore::SelectElement::setActiveSelectionEndIndex):
3411         (WebCore::SelectElement::updateListBoxSelection):
3412         (WebCore::SelectElement::listBoxOnChange):
3413         (WebCore::SelectElement::menuListOnChange):
3414         (WebCore::SelectElement::scrollToSelection):
3415         (WebCore::SelectElement::recalcStyle):
3416         (WebCore::SelectElement::setRecalcListItems):
3417         (WebCore::SelectElement::recalcListItems):
3418         (WebCore::SelectElement::selectedIndex):
3419         (WebCore::SelectElement::setSelectedIndex):
3420         (WebCore::SelectElement::optionToListIndex):
3421         (WebCore::SelectElement::listToOptionIndex):
3422         (WebCore::SelectElement::dispatchFocusEvent):
3423         (WebCore::SelectElement::dispatchBlurEvent):
3424         (WebCore::SelectElement::deselectItems):
3425         (WebCore::SelectElement::saveFormControlState):
3426         (WebCore::SelectElement::restoreFormControlState):
3427         (WebCore::SelectElement::parseMultipleAttribute):
3428         (WebCore::SelectElement::appendFormData):
3429         (WebCore::SelectElement::reset):
3430         (WebCore::SelectElement::menuListDefaultEventHandler):
3431         (WebCore::SelectElement::listBoxDefaultEventHandler):
3432         (WebCore::SelectElement::defaultEventHandler):
3433         (WebCore::SelectElement::lastSelectedListIndex):
3434         (WebCore::stripLeadingWhiteSpace):
3435         (WebCore::SelectElement::typeAheadFind):
3436         (WebCore::SelectElement::insertedIntoTree):
3437         (WebCore::SelectElementData::SelectElementData):
3438         (WebCore::SelectElementData::checkListItems):
3439         (WebCore::SelectElementData::listItems):
3440         * dom/SelectElement.h:
3441         (WebCore::SelectElementData::multiple):
3442         (WebCore::SelectElementData::setMultiple):
3443         (WebCore::SelectElementData::size):
3444         (WebCore::SelectElementData::setSize):
3445         (WebCore::SelectElementData::usesMenuList):
3446         (WebCore::SelectElementData::lastOnChangeIndex):
3447         (WebCore::SelectElementData::setLastOnChangeIndex):
3448         (WebCore::SelectElementData::lastOnChangeSelection):
3449         (WebCore::SelectElementData::activeSelectionState):
3450         (WebCore::SelectElementData::setActiveSelectionState):
3451         (WebCore::SelectElementData::activeSelectionAnchorIndex):
3452         (WebCore::SelectElementData::setActiveSelectionAnchorIndex):
3453         (WebCore::SelectElementData::activeSelectionEndIndex):
3454         (WebCore::SelectElementData::setActiveSelectionEndIndex):
3455         (WebCore::SelectElementData::cachedStateForActiveSelection):
3456         (WebCore::SelectElementData::shouldRecalcListItems):
3457         (WebCore::SelectElementData::setShouldRecalcListItems):
3458         (WebCore::SelectElementData::rawListItems):
3459         (WebCore::SelectElementData::repeatingChar):
3460         (WebCore::SelectElementData::setRepeatingChar):
3461         (WebCore::SelectElementData::lastCharTime):
3462         (WebCore::SelectElementData::setLastCharTime):
3463         (WebCore::SelectElementData::typedString):
3464         (WebCore::SelectElementData::setTypedString):
3465         * html/HTMLOptionElement.h:
3466         * html/HTMLSelectElement.cpp:
3467         (WebCore::HTMLSelectElement::HTMLSelectElement):
3468         (WebCore::HTMLSelectElement::recalcStyle):
3469         (WebCore::HTMLSelectElement::formControlType):
3470         (WebCore::HTMLSelectElement::selectedIndex):
3471         (WebCore::HTMLSelectElement::deselectItems):
3472         (WebCore::HTMLSelectElement::setSelectedIndex):
3473         (WebCore::HTMLSelectElement::activeSelectionStartListIndex):
3474         (WebCore::HTMLSelectElement::activeSelectionEndListIndex):
3475         (WebCore::HTMLSelectElement::saveFormControlState):
3476         (WebCore::HTMLSelectElement::restoreFormControlState):
3477         (WebCore::HTMLSelectElement::parseMappedAttribute):
3478         (WebCore::HTMLSelectElement::canSelectAll):
3479         (WebCore::HTMLSelectElement::selectAll):
3480         (WebCore::HTMLSelectElement::createRenderer):
3481         (WebCore::HTMLSelectElement::appendFormData):
3482         (WebCore::HTMLSelectElement::optionToListIndex):
3483         (WebCore::HTMLSelectElement::listToOptionIndex):
3484         (WebCore::HTMLSelectElement::recalcListItems):
3485         (WebCore::HTMLSelectElement::setRecalcListItems):
3486         (WebCore::HTMLSelectElement::reset):
3487         (WebCore::HTMLSelectElement::dispatchFocusEvent):
3488         (WebCore::HTMLSelectElement::dispatchBlurEvent):
3489         (WebCore::HTMLSelectElement::defaultEventHandler):
3490         (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
3491         (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
3492         (WebCore::HTMLSelectElement::updateListBoxSelection):
3493         (WebCore::HTMLSelectElement::menuListOnChange):
3494         (WebCore::HTMLSelectElement::listBoxOnChange):
3495         (WebCore::HTMLSelectElement::saveLastSelection):
3496         (WebCore::HTMLSelectElement::setOption):
3497         (WebCore::HTMLSelectElement::scrollToSelection):
3498         (WebCore::HTMLSelectElement::insertedIntoTree):
3499         * html/HTMLSelectElement.h:
3500         (WebCore::HTMLSelectElement::size):
3501         (WebCore::HTMLSelectElement::multiple):
3502         (WebCore::HTMLSelectElement::listItems):
3503         * wml/WMLOptionElement.cpp:
3504         (WebCore::WMLOptionElement::text):
3505         * wml/WMLOptionElement.h:
3506
3507
3508         * dom/OptionElement.h:
3509         * dom/SelectElement.cpp:
3510         (WebCore::SelectElement::selectAll):
3511         (WebCore::SelectElement::saveLastSelection):
3512         (WebCore::isOptionElement):
3513         (WebCore::isOptionGroupElement):
3514         (WebCore::SelectElement::nextSelectableListIndex):
3515         (WebCore::SelectElement::previousSelectableListIndex):
3516         (WebCore::SelectElement::setActiveSelectionAnchorIndex):
3517         (WebCore::SelectElement::setActiveSelectionEndIndex):
3518         (WebCore::SelectElement::updateListBoxSelection):
3519         (WebCore::SelectElement::listBoxOnChange):
3520         (WebCore::SelectElement::menuListOnChange):
3521         (WebCore::SelectElement::scrollToSelection):
3522         (WebCore::SelectElement::recalcStyle):
3523         (WebCore::SelectElement::setRecalcListItems):
3524         (WebCore::SelectElement::recalcListItems):
3525         (WebCore::SelectElement::selectedIndex):
3526         (WebCore::SelectElement::setSelectedIndex):
3527         (WebCore::SelectElement::optionToListIndex):
3528         (WebCore::SelectElement::listToOptionIndex):
3529         (WebCore::SelectElement::dispatchFocusEvent):
3530         (WebCore::SelectElement::dispatchBlurEvent):
3531         (WebCore::SelectElement::deselectItems):
3532         (WebCore::SelectElement::saveFormControlState):
3533         (WebCore::SelectElement::restoreFormControlState):
3534         (WebCore::SelectElement::parseMultipleAttribute):
3535         (WebCore::SelectElement::appendFormData):
3536         (WebCore::SelectElement::reset):
3537         (WebCore::SelectElement::menuListDefaultEventHandler):
3538         (WebCore::SelectElement::listBoxDefaultEventHandler):
3539         (WebCore::SelectElement::defaultEventHandler):
3540         (WebCore::SelectElement::lastSelectedListIndex):
3541         (WebCore::stripLeadingWhiteSpace):
3542         (WebCore::SelectElement::typeAheadFind):
3543         (WebCore::SelectElement::insertedIntoTree):
3544         (WebCore::SelectElementData::SelectElementData):
3545         (WebCore::SelectElementData::~SelectElementData):
3546         (WebCore::SelectElementData::checkListItems):
3547         (WebCore::SelectElementData::listItems):
3548         * dom/SelectElement.h:
3549         (WebCore::SelectElementData::multiple):
3550         (WebCore::SelectElementData::setMultiple):
3551         (WebCore::SelectElementData::size):
3552         (WebCore::SelectElementData::setSize):
3553  &nbs