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