2c38200fd75166f1c60064e6495c45f29c359f49
[WebKit.git] / WebCore / ChangeLog
1 2010-01-22  Kelly Norton  <knorton@google.com>
2
3         Reviewed by Pavel Feldman.
4
5         Web Inspector: JavaScript Error in DOMAgent.js:375 (_attributesUpdated)
6         https://bugs.webkit.org/show_bug.cgi?id=33915
7
8         Errors were caused by the fact that Element::attributes calls Element::setAttribute to
9         synchronized the styleAttr. The fix is to simply check the synchronizing style attribute
10         flag.
11
12         * dom/Element.cpp:
13         (WebCore::Element::setAttribute): Checked for case where styleAttr is being synchronized.
14
15 2010-01-22  Eric Carlson  <eric.carlson@apple.com>
16
17         Reviewed by Simon Fraser.
18
19         Update r53711 for GraphicsLayer method rename.
20
21         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
22         (WebCore::MediaPlayerPrivate::createLayerForMovie): Rename from change setContentsToVideo.
23
24 2010-01-22  Jian Li  <jianli@chromium.org>
25
26         Reviewed by Darin Adler.
27
28         Add BlobConstructor to DOMWindow.
29         https://bugs.webkit.org/show_bug.cgi?id=33982
30
31         * page/DOMWindow.idl:
32
33 2010-01-22  Brian Weinstein  <bweinstein@apple.com>
34
35         Rubber-stamped by Adam Roben.
36         
37         Commit files that were supposed to be part of r53696, but weren't
38         landed.
39
40         * English.lproj/localizedStrings.js:
41         * manual-tests/debugger-caught-uncaught-exceptions.html: Added.
42
43 2010-01-22  Peter Kasting  <pkasting@google.com>
44
45         Reviewed by David Hyatt.
46
47         When scrolling by page, hold back 1/8th of the visible size instead of
48         40 px.
49         https://bugs.webkit.org/show_bug.cgi?id=32595
50
51         * editing/EditorCommand.cpp:
52         (WebCore::verticalScrollDistance):
53         * platform/ScrollView.cpp:
54         (WebCore::ScrollView::updateScrollbars):
55         (WebCore::ScrollView::wheelEvent):
56         * platform/Scrollbar.h:
57         * platform/wx/ScrollViewWx.cpp:
58         (WebCore::ScrollView::ScrollViewPrivate::OnScrollWinEvents):
59         * rendering/RenderLayer.cpp:
60         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
61
62 2010-01-22  Peter Kasting  <pkasting@google.com>
63
64         Not reviewed, backout.
65
66         Back out r52673, which caused several regressions.
67         https://bugs.webkit.org/show_bug.cgi?id=32533
68
69         * platform/PopupMenuClient.h:
70         * platform/chromium/PopupMenuChromium.cpp:
71         (WebCore::PopupContainer::hidePopup):
72         (WebCore::PopupListBox::handleKeyEvent):
73         (WebCore::PopupListBox::abandon):
74         (WebCore::PopupListBox::acceptIndex):
75         (WebCore::PopupListBox::selectIndex):
76         (WebCore::PopupListBox::clearSelection):
77         (WebCore::PopupListBox::hidePopup):
78         * platform/gtk/PopupMenuGtk.cpp:
79         (WebCore::PopupMenu::menuUnmapped):
80         * platform/mac/PopupMenuMac.mm:
81         (WebCore::PopupMenu::show):
82         * platform/qt/QtAbstractWebPopup.cpp:
83         (WebCore::QtAbstractWebPopup::popupDidHide):
84         * platform/qt/QtAbstractWebPopup.h:
85         * platform/win/PopupMenuWin.cpp:
86         (WebCore::PopupMenu::hide):
87         * platform/wx/PopupMenuWx.cpp:
88         (WebCore::PopupMenu::OnMenuItemSelected):
89         * rendering/RenderMenuList.cpp:
90         (WebCore::RenderMenuList::popupDidHide):
91         * rendering/RenderMenuList.h:
92         * rendering/RenderTextControlSingleLine.cpp:
93         (WebCore::RenderTextControlSingleLine::popupDidHide):
94         * rendering/RenderTextControlSingleLine.h:
95
96 2010-01-22  Dan Bernstein  <mitz@apple.com>
97
98         Rubber-stamped by Darin Adler.
99
100         Revert r53693 because it broke scrolling of pages with fixed elements on
101         Mac OS X.
102
103         * page/FrameView.cpp:
104         * page/FrameView.h:
105         * platform/ScrollView.cpp:
106         (WebCore::ScrollView::scrollContents):
107         * platform/ScrollView.h:
108         * rendering/RenderObject.cpp:
109         (WebCore::RenderObject::styleWillChange):
110         (WebCore::RenderObject::destroy):
111
112 2010-01-22  Alexey Proskuryakov  <ap@apple.com>
113
114         Reviewed by Darin Adler.
115
116         https://bugs.webkit.org/show_bug.cgi?id=34008
117         Assertion failure in KURL::setProtocol when running DOM Fuzzer
118
119         Test: fast/dom/Window/invalid-protocol.html
120
121         * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::setProtocol): Raise an exception
122         if KURL::setProtocol fails.
123
124         * html/HTMLAnchorElement.cpp: (WebCore::HTMLAnchorElement::setProtocol): Move argument
125         tweaking logic into KURL. This way, the ':' trick applies to both JSLocation and
126         HTMLAnchorElement, matching IE (but not Firefox). IE behavior is more permissive, and even
127         more logical in my opinion.
128
129         * loader/FrameLoader.cpp: (WebCore::FrameLoader::iconURL): Assert that setting protocol
130         succeeded.
131
132         * platform/KURL.cpp: (WebCore::KURL::setProtocol): Remove everything past ':', if present.
133         Return false if the protocol to set is not valid.
134         (WebCore::isValidProtocol): Made this work correctly for empty strings.
135
136         * platform/KURL.h: isValidProtocol() is now static in KURL.cpp, it's only used in setProtocol().
137
138         * platform/KURLGoogle.cpp: 
139         (WebCore::KURL::setProtocol): Always return true. This should hopefully prevent Chromium build
140         breakage, alhough tests will likely fail.
141         (WebCore::isValidProtocol): Removed, as this isn't used at the moment.
142
143         * websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::httpURLForAuthenticationAndCookies):
144         Assert that setting protocol succeeded.
145
146 2010-01-22  Eric Carlson  <eric.carlson@apple.com>
147
148         Reviewed by Adam Roben.
149
150         <rdar://problem/7373568>
151         https://bugs.webkit.org/show_bug.cgi?id=34007
152         Implement hardware acceleration of video compositing on Windows
153
154         Internally we still have QuickTime render to a bitmap, but frames are then composited
155         with the page using an accelerated renderer.
156
157         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
158         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_newFrameAvailable.
159         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate): Call tearDownVideoRendering.
160         (WebCore::MediaPlayerPrivate::cancelLoad): Call tearDownVideoRendering.
161         (WebCore::MediaPlayerPrivate::updateStates): Call setUpVideoRendering once the movie 
162             is ready to draw.
163         (WebCore::MediaPlayerPrivate::isReadyForRendering): New, utility function returns true 
164             only when movie is ready to render.
165         (WebCore::MediaPlayerPrivate::setSize): Remember the size as we need it when rendering 
166             in accelerated mode.
167         (WebCore::MediaPlayerPrivate::setVisible): Call setUpVideoRendering when made visible.
168         (WebCore::MediaPlayerPrivate::paint): Do nothing when rendering to a layer. Move frame 
169             rate drawing code to paintCompleted.
170         (WebCore::MediaPlayerPrivate::paintCompleted): New, clear m_newFrameAvailable and, when 
171             built with DRAW_FRAME_RATE, draw framerate.
172         (WebCore::MediaPlayerPrivate::movieNewImageAvailable): Set m_newFrameAvailable, trigger 
173             repaint differently when drawing to a layer.
174         (WebCore::MediaPlayerPrivate::currentRenderingMode): New, return the current rendering mode.
175         (WebCore::MediaPlayerPrivate::preferredRenderingMode): New, return preferred rendering mode
176             (render to a layer whenever possible).
177         (WebCore::MediaPlayerPrivate::setUpVideoRendering): New, tear down current rendering mode 
178             and set up new mode when necessary.
179         (WebCore::MediaPlayerPrivate::tearDownVideoRendering): New, noop unless rendering to a layer.
180         (WebCore::MediaPlayerPrivate::hasSetUpVideoRendering): New.
181         (WebCore::MediaPlayerPrivate::paintContents): New, callback from compositing layer when it
182             is time to draw the current frame.
183         (WebCore::MediaPlayerPrivate::createLayerForMovie): New, allocate a layer for the movie.
184         (WebCore::MediaPlayerPrivate::destroyLayerForMovie): New, delete movie layer.
185         (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering): New, return true unless the 
186             movie is not ready to render.
187         (WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged): New, deal with change in 
188             accelerated rendering state.
189         (WebCore::MediaPlayerPrivate::notifySyncRequired): New, callback from compositing layer 
190             when it wants to schedule a redraw.
191         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
192         (WebCore::MediaPlayerPrivate::notifyAnimationStarted):
193         (WebCore::MediaPlayerPrivate::showDebugBorders):
194         (WebCore::MediaPlayerPrivate::showRepaintCounter):
195
196         * platform/graphics/win/QTMovieWin.cpp:
197         (QTMovieWin::getCurrentFrameInfo):
198             New, return information about the offscreen render buffer.
199         (QTMovieWin::initializeQuickTime):
200         * platform/graphics/win/QTMovieWin.h:
201
202 2010-01-21  Jeremy Orlow  <jorlow@chromium.org>
203
204         Reviewed by Darin Fisher.
205
206         The Chromium WebKit API needs to expose storage event related data
207         https://bugs.webkit.org/show_bug.cgi?id=33985
208
209         This change is not visible to layoutTests/web pages.
210
211         * storage/StorageArea.h:
212         * storage/StorageAreaImpl.cpp:
213         (WebCore::StorageAreaImpl::setItem): return the old value
214         (WebCore::StorageAreaImpl::removeItem): return the old value
215         (WebCore::StorageAreaImpl::clear): return whether there was anything to clear
216         * storage/StorageAreaImpl.h:
217
218 2010-01-22  Adele Peterson  <adele@apple.com>
219
220         Reviewed by Dan Bernstein.
221
222         An element that doesn't validate and an invalid element shouldn't share style
223         https://bugs.webkit.org/show_bug.cgi?id=34010
224
225         Test: fast/css/pseudo-invalid-novalidate-001.html
226
227         * css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::canShareStyleWithElement): 
228           Separate the check for willValidate from the check for isValidFormControlElement.
229         * html/HTMLFormControlElement.h: The validity method doesn't need to be virtual.
230
231 2010-01-22  Steve Falkenburg  <sfalken@apple.com>
232
233         Reviewed by Dan Bernstein.
234
235         Crash in fast/dom/Window/window-properties if Geolocation enabled
236         https://bugs.webkit.org/show_bug.cgi?id=34013
237         
238         Add null check to fix Geolocation crash in fast/dom/Window/window-properties.
239         
240         * page/Geolocation.cpp:
241         (WebCore::createGeoposition):
242
243 2010-01-22  Kent Hansen  <kent.hansen@nokia.com>
244
245         Reviewed by Darin Adler.
246
247         Object.getOwnPropertyDescriptor(window) returns descriptors for properties in the prototype chain
248         https://bugs.webkit.org/show_bug.cgi?id=33948
249
250         Even though prototype properties are proxied by JSDOMWindow::getOwnPropertySlot(),
251         that proxying should not be performed by JSDOMWindow::getOwnPropertyDescriptor().
252
253         This makes getOwnPropertyDescriptor() consistent with getOwnPropertyNames().
254
255         Test: fast/dom/Window/window-property-descriptors.html
256
257         * bindings/js/JSDOMWindowCustom.cpp:
258         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
259
260 2010-01-22  Girish Ramakrishnan  <girish@forwardbias.in>
261
262         Reviewed by Simon Hausmann.
263
264         [Qt] Save the QWebPageClient instead of the ownerWidget in QtAbstractWebPopup
265         
266         The QWebPageClient is required for the QtFallbackWebPopup. QtFallbackWebPopup will
267         need it to create a QGraphicsProxyWidget (in a future commit) for the 
268         QGraphicsWebView's web popup.
269
270         * platform/qt/PopupMenuQt.cpp:
271         (WebCore::PopupMenu::show):
272         * platform/qt/QtAbstractWebPopup.cpp:
273         (WebCore::QtAbstractWebPopup::QtAbstractWebPopup):
274         (WebCore::QtAbstractWebPopup::popupDidHide):
275         (WebCore::QtAbstractWebPopup::valueChanged):
276         (WebCore::QtAbstractWebPopup::itemType):
277         * platform/qt/QtAbstractWebPopup.h:
278         (WebCore::QtAbstractWebPopup::itemText):
279         (WebCore::QtAbstractWebPopup::itemToolTip):
280         (WebCore::QtAbstractWebPopup::itemIsEnabled):
281         (WebCore::QtAbstractWebPopup::itemCount):
282         (WebCore::QtAbstractWebPopup::pageClient):
283         (WebCore::QtAbstractWebPopup::font):
284
285 2010-01-22  Simon Hausmann  <simon.hausmann@nokia.com>
286
287         Unreviewed Qt "build" fix.
288
289         * WebCore.pro: Fix warning about missing header file that isn't present anymore.
290
291 2010-01-22  Brian Weinstein  <bweinstein@apple.com>
292
293         Reviewed by Timothy Hatcher.
294
295         Web Inspector: Caught exceptions still pause the debugger.
296         <https://bugs.webkit.org/show_bug.cgi?id=28622>.
297
298         Turn the pauseOnExceptions variable from a bool to an int, because we now have
299         3 states, in an enum: DontPauseOnExceptions, PauseOnAllExceptions, and
300         PauseOnUncaughtExceptions. The status button for pausing on exceptions is now
301         a tri-state button, which cycles from Don't pause (no background) to Pause on All
302         (blue background) to Pause on Uncaught (purple background).
303
304         Also added the ability for a status button to have more than 2 states, and added
305         style rules for a CSS three state button.
306
307         Added a manual test, manual-tests/debugger-caught-uncaught-exceptions.html, that
308         generates caught and uncaught exceptions.
309
310         * English.lproj/localizedStrings.js: Added updated Action / Click to Action text.
311         * inspector/InspectorBackend.cpp:
312         (WebCore::InspectorBackend::pauseOnExceptions): Changed from a bool to an int.
313         (WebCore::InspectorBackend::setPauseOnExceptions): Ditto.
314         * inspector/InspectorBackend.h: Ditto.
315         * inspector/InspectorBackend.idl: Ditto.
316         * inspector/JavaScriptDebugServer.cpp:
317         (WebCore::JavaScriptDebugServer::JavaScriptDebugServer): Changed from bool to PauseOnExceptionsState.
318         (WebCore::JavaScriptDebugServer::setPauseOnExceptions): Ditto.
319         (WebCore::JavaScriptDebugServer::exception): Updated logic to see if we are breaking
320             on uncaught exceptions, and check if we have a handler.
321         * inspector/JavaScriptDebugServer.h:
322         (WebCore::JavaScriptDebugServer::): Changed from bool to PauseOnExceptionsState.
323         (WebCore::JavaScriptDebugServer::pauseOnExceptions): Ditto.
324         * inspector/front-end/InspectorBackendStub.js:
325         (.WebInspector.InspectorBackendStub.prototype.pauseOnExceptionsState): Changed from returning false to returning 0 (stub function).
326         * inspector/front-end/ScriptsPanel.js:
327         (WebInspector.ScriptsPanel):
328         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton): Updated to new text/new cycling of variables.
329         (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions): Updated to new text/new cycling of variables.
330         * inspector/front-end/StatusBarButton.js:
331         (WebInspector.StatusBarButton): Added the option for a different number of states.
332         (WebInspector.StatusBarButton.prototype.set toggled): Added rules to toggle on/off with multiple states.
333         * inspector/front-end/inspector.css: Added rules for toggled-1 and toggled-2.
334         * manual-tests/debugger-caught-uncaught-exceptions.html: Added.
335
336 2010-01-22  Ben Murdoch  <benm@google.com>
337
338         Reviewed by Eric Seidel.
339
340         [Android] Android platform specific PlatformTouchEvent and PlatformTouchPoint implementations are not upstream.
341         https://bugs.webkit.org/show_bug.cgi?id=33719
342
343         Add the Android specific files and update the Android makefile.
344
345         No new tests as this is all Android-specific code.
346
347         * Android.mk: Add Touch event related files to the makefile.
348         * platform/PlatformTouchEvent.h: Add Android constructor.
349         * platform/PlatformTouchPoint.h: Ditto.
350         * platform/android/PlatformTouchEventAndroid.cpp: Added.
351         (WebCore::PlatformTouchEvent::PlatformTouchEvent): Android implementation.
352         * platform/android/PlatformTouchPointAndroid.cpp: Added.
353         (WebCore::PlatformTouchPoint::PlatformTouchPoint): Android implementation.
354
355 2010-01-22  Benjamin Poulain  <benjamin.poulain@nokia.com>
356
357         Reviewed by Kenneth Rohde Christiansen.
358
359         Do not render the full frame when there is some elements with fixed positioning
360         https://bugs.webkit.org/show_bug.cgi?id=33150
361
362         The RenderObjects with fixed position register to the view
363         to be taken into account while scrolling.
364         The scrolling code update specifically those elements after blitting the pixels.
365
366         * page/FrameView.cpp:
367         (WebCore::FrameView::registerFixedPositionedObject):
368         (WebCore::FrameView::unregisterFixedPositionedObject):
369         (WebCore::FrameView::scrollContentsFastPath):
370         * page/FrameView.h:
371         * platform/ScrollView.cpp:
372         (WebCore::ScrollView::scrollContents):
373         (WebCore::ScrollView::scrollContentsFastPath):
374         * platform/ScrollView.h:
375         * rendering/RenderObject.cpp:
376         (WebCore::RenderObject::styleWillChange):
377         (WebCore::RenderObject::destroy):
378
379 2010-01-22  Anton Muhin  <antonm@chromium.org>
380
381         Reviewed by Eric Seidel.
382
383         Adding ScriptWrappable into WebCore.
384         This allows to associate custom information when Node
385         gets wrapped into JavaScript wrapper.
386
387         [v8, dom] Add a pointer field to C++ Node class
388         https://bugs.webkit.org/show_bug.cgi?id=32430
389
390         * WebCore.gypi:
391         * WebCore.pro:
392         * WebCore.vcproj/WebCore.vcproj:
393         * WebCore.xcodeproj/project.pbxproj:
394         * bindings/js/ScriptWrappable.h: Added.
395         (WebCore::ScriptWrappable::ScriptWrappable):
396         * bindings/v8/ScriptWrappable.h: Added.
397         (WebCore::ScriptWrappable::ScriptWrappable):
398         (WebCore::ScriptWrappable::wrapper):
399         (WebCore::ScriptWrappable::setWrapper):
400         (WebCore::ScriptWrappable::clearWrapper):
401         * dom/Node.h:
402
403 2010-01-22  Yury Semikhatsky  <yurys@chromium.org>
404
405         Reviewed by Pavel Feldman.
406
407         Add stub implementation of dispatchOnInjectedScript method so that
408         Chromium source can compile against it and the main fix for the bug
409         28622 can be landed without breaking Chromium build.
410
411         https://bugs.webkit.org/show_bug.cgi?id=28622
412
413         * inspector/InspectorBackend.h:
414         (WebCore::InspectorBackend::dispatchOnInjectedScript):
415
416 2010-01-22  Kwang Yul Seo  <skyul@company100.net>
417
418         Reviewed by Dmitry Titov.
419
420         ENABLE(DATABASE) guard is missing in ScriptExecutionContext::~ScriptExecutionContext
421         https://bugs.webkit.org/show_bug.cgi?id=33990
422
423         Add missing ENABLE(DATABASE) guard.
424
425         * dom/ScriptExecutionContext.cpp:
426         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
427
428 2010-01-22  Xan Lopez  <xlopez@igalia.com>
429
430         Reviewed by Gustavo Noronha.
431
432         [GTK] GObject DOM bindings
433         https://bugs.webkit.org/show_bug.cgi?id=33590
434
435         * bindings/scripts/generate-bindings.pl:
436
437 2010-01-22  Xan Lopez  <xlopez@igalia.com>
438
439         Reviewed by Gustavo Noronha.
440
441         [GTK] GObject DOM bindings
442         https://bugs.webkit.org/show_bug.cgi?id=33590
443
444         Rename FEATURE_DEFINES_JAVASCRIPT to FEATURE_DEFINES and remove
445         the hardcoded LANGUAGE_JAVASCRIPT=1, in preparation for its use by
446         the GObject DOM bindings.
447
448         * GNUmakefile.am:
449
450 2010-01-22  Dan Bernstein  <mitz@apple.com>
451
452         Reviewed by Darin Adler.
453
454         <rdar://problem/7568696> Zoom applied to embedded SVG incorrectly
455         https://bugs.webkit.org/show_bug.cgi?id=33988
456
457         Test: svg/custom/text-zoom.xhtml
458
459         * svg/SVGSVGElement.cpp:
460         (WebCore::SVGSVGElement::SVGSVGElement): Initialize m_scale.
461         (WebCore::SVGSVGElement::currentScale): If this is the document element,
462         return the frame’s zoom factor. Otherwise, return m_scale.
463         (WebCore::SVGSVGElement::setCurrentScale): If this is the document element,
464         set the frame’s zoom factor. Otherwise, set m_scale and mark for layout.
465         * svg/SVGSVGElement.h: Added m_scale member.
466
467 2010-01-21  Adam Barth  <abarth@webkit.org>
468
469         Reviewed by Eric Seidel.
470
471         [chromium] Add allowPlugins callback to allow per-site enabling of plugins
472         https://bugs.webkit.org/show_bug.cgi?id=33974
473
474         Add a callback into the FrameLoaderClient to let the embedder enable or
475         disable plugins on a per-site basis.
476
477         * loader/FrameLoader.cpp:
478         (WebCore::FrameLoader::requestObject):
479         * loader/FrameLoaderClient.h:
480         (WebCore::FrameLoaderClient::allowPlugins):
481
482 2010-01-21  Tony Chang  <tony@chromium.org>
483
484         Reviewed by Darin Adler.
485
486         https://bugs.webkit.org/show_bug.cgi?id=25501
487         Remove empty font tags when applying a style to a content editable
488         region.
489
490         Test: editing/execCommand/change-font.html
491
492         * editing/ApplyStyleCommand.cpp:
493         (WebCore::isEmptyFontTag):
494
495 2010-01-21  Joe Mason  <jmason@rim.com>
496
497         Reviewed by Darin Adler.
498
499         Promote pow argument to double to resolve ambiguous overload (compile fix for RVCT 4.0)
500         https://bugs.webkit.org/show_bug.cgi?id=33952
501
502         * platform/graphics/filters/FEComponentTransfer.cpp:
503         (WebCore::gamma):
504
505 2010-01-21  Andrei Popescu  <andreip@google.com>
506
507         Reviewed by David Levin.
508
509         [Android] bindings/v8/ScriptController.cpp needs to include
510         PlatformBridge.h instead of ChromiumBridge.h so that it can
511         be used on both Chromium and Android.
512         https://bugs.webkit.org/show_bug.cgi?id=33673
513
514         Add "static NPObject* pluginScriptableObject(Widget*);" method
515         to PlatformBridge.h
516         Include PlatformBridge.h from ScriptController.cpp.
517
518         No new tests, just platform code.
519
520         * bindings/v8/ScriptController.cpp:
521         (WebCore::ScriptController::createScriptInstanceForWidget):
522         * platform/android/PlatformBridge.h:
523
524 2010-01-21  Brady Eidson  <beidson@apple.com>
525
526         Reviewed by Maciej Stachowiak.
527
528         history.back() for same-document history traversals isn't synchronous as the specification states.
529         <rdar://problem/7535011> and https://bugs.webkit.org/show_bug.cgi?id=33538
530
531         In resolving https://bugs.webkit.org/show_bug.cgi?id=25570, all history.back()/forward()/go() navigations
532         were made asynchronous. That doesn't agree with the HTML5 spec and might have been overreaching for fixing
533         that particular bug. In working with the new history state APIs I noticed some things that should've been
534         possible were not possible because of this change.
535
536         The change in loading behavior is well covered via modifications to previous tests.
537
538         * loader/RedirectScheduler.cpp:
539         (WebCore::RedirectScheduler::scheduleHistoryNavigation): Determine beforehand if the traversal is
540           a same-document navigation. If it is, perform the load directly instead of scheduling it.
541
542 2010-01-21  Jakub Wieczorek  <faw217@gmail.com>
543
544         Reviewed by Tor Arne Vestbø.
545
546         [Qt] Don't allow Phonon's invisible video widget to keep the app running.
547         https://bugs.webkit.org/show_bug.cgi?id=33842
548
549         The change made in r38223 should not be limited to Qt < 4.5 only.
550
551         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
552         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
553
554 2010-01-21  Kent Tamura  <tkent@chromium.org>
555
556         Reviewed by Darin Adler.
557
558         HTMLInputElement::valueAsDate setter support for type=datetime.
559         https://bugs.webkit.org/show_bug.cgi?id=33939
560
561         Introduce ISODateTime::setMillisecondsSinceEpochForDateTime() and add
562         DateTime type support to ISODateTime::toString().
563
564         * html/HTMLInputElement.cpp:
565         (WebCore::HTMLInputElement::setValueAsDate):
566         * html/ISODateTime.cpp:
567         (WebCore::ISODateTime::setMillisecondsSinceEpochForDate):
568          Set Invalid to m_type.
569         (WebCore::ISODateTime::setMillisecondsSinceEpochForDateTime):
570         (WebCore::ISODateTime::setMillisecondsSinceEpochForMonth):
571          Set Invalid to m_type.
572         (WebCore::ISODateTime::setMillisecondsSinceMidnight):
573          Set Invalid to m_type.
574         (WebCore::ISODateTime::toString):
575          Support DateTime type. This always produces UTC representation.
576         * html/ISODateTime.h:
577
578 2010-01-21  Geoffrey Garen  <ggaren@apple.com>
579
580         Reviewed by Sam Weinig.
581
582         Fixed <rdar://problem/7562574> ASSERT in WebCore::removeWrapper() at the
583         end of run-webkit-tests
584         
585         This was an ASSERT-only bug, introduced by isolated worlds, which
586         created the novelty of a wrapper that might outlive its wrapper cache.
587         
588         When a wrapper outlived its wrapper cache, both the wrapper's destructor
589         and the wrapper cache's destructor would claim to have uncached the wrapper,
590         causing an ASSERT to fire.
591         
592         The solution is to distinguish between operations that logically add and
593         remove cache entries, and operations that delete whole caches. We track
594         when a cache entry is logically added, and when it's logically removed,
595         independent of whether the actual cache still exists.
596
597         * bindings/js/JSDOMBinding.cpp:
598         (WebCore::willCacheWrapper):
599         (WebCore::didUncacheWrapper): New names for these functions to help
600         explain what they track.
601
602         (WebCore::DOMWrapperWorld::~DOMWrapperWorld): Don't claim to uncache
603         all the wrappers in the world; we're deleting the cache, not managing its
604         entries.
605
606         (WebCore::cacheDOMObjectWrapper):
607         (WebCore::forgetDOMObject):
608         (WebCore::forgetDOMNode):
609         (WebCore::cacheDOMNodeWrapper):
610         (WebCore::forgetAllDOMNodesForDocument):
611         (WebCore::forgetWorldOfDOMNodesForDocument):
612         (WebCore::takeWrappers):
613         (WebCore::updateDOMNodeDocument): Updated for renames.
614
615 2010-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>
616
617         Reviewed by Sam Weinig.
618
619         SVG JS bindings "context" pointer needs to move onto binding impls
620         https://bugs.webkit.org/show_bug.cgi?id=27243
621
622         Rewrite SVG DOM JSC bindings to use a global DOMObject <-> SVGElement context map, similar to V8's approach.
623         This allows us to remove DOMObjectWithSVGContext and make all SVG JS objects use DOMObjectWithGlobalPointer.
624         We're fitting again in JS_CELL_SIZE, and there's no need to special case SVG anymore.
625
626         Not adding a new test, as we have yet to identify how to test that we're passing around correct global objects.
627         For now this is just a code cleanup which lets me continue making progress in that area of the code.
628
629         * GNUmakefile.am: Add new DOMObjectWithSVGContext.h to build.
630         * WebCore.gypi: Ditto.
631         * WebCore.vcproj/WebCore.vcproj: Ditto.
632         * WebCore.xcodeproj/project.pbxproj: Ditto.
633         * bindings/js/DOMObjectWithSVGContext.h: Removed.
634         * bindings/js/JSDOMBinding.cpp:
635         (WebCore::setDOMException): Add comment, that passing 0 context is intentional.
636         * bindings/js/JSDOMBinding.h:
637         (WebCore::createDOMObjectWrapper): Add to JSSVGContextCache, when creating wrappers.
638         (WebCore::getDOMObjectWrapper): Add assertion guarding the JSSVGContextCache is in-sync with the passed context.
639         * bindings/js/JSSVGContextCache.h: Added. Maps DOMObjects to SVGElements - just like V8 approachs to this problem.
640         (WebCore::JSSVGContextCache::wrapperMap):
641         (WebCore::JSSVGContextCache::addWrapper):
642         (WebCore::JSSVGContextCache::forgetWrapper):
643         (WebCore::JSSVGContextCache::propagateSVGDOMChange): 
644         (WebCore::JSSVGContextCache::svgContextForDOMObject):
645         * bindings/js/JSSVGLengthCustom.cpp: Retrieve context from cache, instead of taking it from the JS* class.
646         (WebCore::JSSVGLength::value):
647         (WebCore::JSSVGLength::convertToSpecifiedUnits):
648         * bindings/js/JSSVGMatrixCustom.cpp Ditto.:
649         (WebCore::JSSVGMatrix::multiply):
650         (WebCore::JSSVGMatrix::inverse):
651         (WebCore::JSSVGMatrix::rotateFromVector):
652         * bindings/js/JSSVGPODListCustom.h: Ditto.
653         (WebCore::JSSVGPODListCustom::finishGetter):
654         (WebCore::JSSVGPODListCustom::finishSetter):
655         (WebCore::JSSVGPODListCustom::finishSetterReadOnlyResult):
656         (WebCore::JSSVGPODListCustom::clear):
657         (WebCore::JSSVGPODListCustom::initialize):
658         * bindings/js/JSSVGPODTypeWrapper.h: Ditto.
659         (WebCore::JSSVGDynamicPODTypeWrapper::commitChange):
660         (WebCore::JSSVGStaticPODTypeWrapper::commitChange):
661         (WebCore::JSSVGStaticPODTypeWrapperWithPODTypeParent::commitChange):
662         (WebCore::JSSVGStaticPODTypeWrapperWithParent::commitChange):
663         (WebCore::JSSVGPODTypeWrapperCreatorForList::create):
664         (WebCore::JSSVGPODTypeWrapperCreatorForList::commitChange):
665         * bindings/js/JSSVGPathSegCustom.cpp: Ditto.
666         (WebCore::toJS):
667         * bindings/js/JSSVGPathSegListCustom.cpp: Ditto.
668         (WebCore::JSSVGPathSegList::clear):
669         (WebCore::JSSVGPathSegList::initialize):
670         (WebCore::JSSVGPathSegList::getItem):
671         (WebCore::JSSVGPathSegList::insertItemBefore):
672         (WebCore::JSSVGPathSegList::replaceItem):
673         (WebCore::JSSVGPathSegList::removeItem):
674         (WebCore::JSSVGPathSegList::appendItem):
675         * bindings/scripts/CodeGeneratorJS.pm:
676         * svg/SVGAngle.h: Remove unneeded associatedAttributeName() method.
677         * svg/SVGPreserveAspectRatio.h: Ditto.
678         * svg/SVGTransform.h: Ditto.
679
680 2010-01-21  Kevin Ollivier  <kevino@theolliviers.com>
681
682         Build fix, add missing header.
683
684         * dom/ScriptExecutionContext.cpp:
685
686 2010-01-21  Simon Fraser  <simon.fraser@apple.com>
687
688         Reviewed by Dan Bernstein.
689
690         -webkit-mask-box-image draws a box while loading
691         https://bugs.webkit.org/show_bug.cgi?id=33979
692         <rdar://problem/7378662>
693         
694         Don't render masked elements until the mask images are fully loaded.
695
696         Test: http/tests/misc/slow-loading-mask.html
697
698         * rendering/RenderBox.cpp:
699         (WebCore::RenderBox::paintMaskImages): Check that all mask images (both the single mask-box-image,
700         and the possibly multiple mask-image) are fully loaded before allowing the masked content to render.
701         If they are not fully loaded, use a fully transparent transparency layer.
702         
703         * rendering/style/FillLayer.h:
704         * rendering/style/FillLayer.cpp:
705         (WebCore::FillLayer::imagesAreLoaded): New utility function that returns true if the image
706         in every FillLayer is loaded.
707
708 2010-01-21  Darin Adler  <darin@apple.com>
709
710         Reviewed by Mark Rowe.
711
712         REGRESSION (r52795): New message created in response to mailto: URL has random character in message body
713         rdar://problem/7565902
714
715         This regression affects the Mac OS X Mail application.
716         I was not able to find a simple way to create a regression test.
717
718         * platform/cf/SharedBufferCF.cpp:
719         (WebCore::SharedBuffer::SharedBuffer): Initialize m_size to 0 as in the other constructors.
720
721 2010-01-21  Enrica Casucci  <enrica@apple.com>
722
723         Reviewed by Darin Adler.
724
725         Script tags are copied and pasted, making cross-domain attacks possible.
726         https://bugs.webkit.org/show_bug.cgi?id=33970
727
728         Tests: editing/pasteboard/paste-noscript-svg.html
729                editing/pasteboard/paste-visible-script.html
730
731         We remove the content and the attributes of every script tag before
732         pasting into the destination.
733         
734         * dom/Element.cpp:
735         (WebCore::Element::setAttributeMap): Now we are removing xlink:href
736         if it contains javascript protocol.
737         * html/HTMLParser.cpp:
738         (WebCore::HTMLParser::parseToken): We strip all the script tag attributes
739         we are parsing to create a fragment to paste.
740         * html/HTMLTokenizer.cpp:
741         (WebCore::HTMLTokenizer::HTMLTokenizer):
742         (WebCore::HTMLTokenizer::scriptHandler): Removes the script text after it was parsed.
743         * html/HTMLTokenizer.h:
744
745 2010-01-21  Nikolas Zimmermann  <nzimmermann@rim.com>
746
747         Reviewed by Dirk Schulze.
748
749         <use> with % lengths does not update on window resize
750         https://bugs.webkit.org/show_bug.cgi?id=14639
751
752         appendChild broken for symbol-use
753         https://bugs.webkit.org/show_bug.cgi?id=24802
754
755         Test: svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml
756               svg/custom/svg/custom/relative-sized-use-on-symbol.xhtml
757
758         Fix reaction on window size changes for relative sized elements within <symbol> elements.
759         Don't evaluate SVGUseElement width/height attributes in order to propagate them to the shadow tree,
760         instead just propagate the attribute values itself so "100%" remains "100%" instead of being evaluated
761         to an absolute pixel value in the parent <svg> user-space.
762
763         Needs another fix in SVGStyledElement::childrenChanged(), which is a regression from my last <use>
764         patch, that hasn't been detected, as the use-dynamic-append.svg testcase was broken.
765
766         The combination of all the last <use> patches finally fixes the peepo.co.uk website, which was broken by several bugs for years.
767
768         * svg/SVGStyledElement.cpp:
769         (WebCore::SVGStyledElement::childrenChanged): Need to mark shadow trees needing recalcs, even when parsing.
770         * svg/SVGUseElement.cpp:
771         (WebCore::SVGUseElement::svgAttributeChanged): Don't reclone for width/height attribute changes, just propagate them down the render tree
772         (WebCore::updateContainerSize): Added helper function, updating the width/height attributes in the shadow tree.
773         (WebCore::SVGUseElement::updateContainerSizes):
774         (WebCore::SVGUseElement::buildShadowAndInstanceTree): Update container width/height after shadow tree creation, instead of doing it inbetween.
775         (WebCore::SVGUseElement::buildShadowTree): Don't alter width/height attributes here anymore.
776         (WebCore::SVGUseElement::expandUseElementsInShadowTree): Ditto.
777         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree): Ditto.
778         * svg/SVGUseElement.h:
779
780 2010-01-21  Alexey Proskuryakov  <ap@apple.com>
781
782         Reviewed by Darin Adler.
783
784         https://bugs.webkit.org/show_bug.cgi?id=33972
785         Assertion failure in FrameLoader::checkLoadComplete()
786
787         I couldn't make a test for this, after trying rather hard. I'm not too worried, because such
788         a test has to depend on details of current implementation so intimately that it would become
789         ineffective very quickly anyway.
790
791         * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopAllLoaders): Stop the check timer, we
792         don't need it after aborting load.
793
794 2010-01-21  Csaba Osztrogonác  <ossy@webkit.org>
795
796         Reviewed by Dave Hyatt.
797
798         Buildfix for r53646.
799
800         * bindings/js/SerializedScriptValue.cpp: path of JSLock.h fixed.
801
802 2010-01-21  Csaba Osztrogonác  <ossy@webkit.org>
803
804         Unreviewed buildfix after r53644.
805
806         * platform/Scrollbar.cpp:
807         (WebCore::Scrollbar::scroll): missing HAVE(ACCESSIBILITY) guard added.
808
809 2010-01-21  Darin Fisher  <darin@chromium.org>
810
811         Reviewed by David Levin.
812
813         Unnecessary call to HistoryItem::targetItem in HistoryController::pushState
814         https://bugs.webkit.org/show_bug.cgi?id=33969
815
816         * loader/HistoryController.cpp:
817         (WebCore::HistoryController::pushState): Remove unnecessary code.
818
819 2010-01-21  Dmitry Titov  <dimich@chromium.org>
820
821         Not reviewed, Chromium build fix. Add AccessibilityScrollbar.h and .cpp to WebCore.gypi
822
823         * WebCore.gypi:
824
825 2010-01-21  Albert J. Wong  <ajwong@chromium.org>
826
827         [chromium] Unreviewed build fix.
828
829         Fix possible use of initialized variable warning in release mode.
830
831         * bindings/v8/SerializedScriptValue.cpp:
832         (WebCore::ZigZag::Deserializer::doDeserialize):
833
834 2010-01-21  Csaba Osztrogonác  <ossy@webkit.org>
835
836         [Qt] Unreviewed buildfix after r53644.
837
838         * WebCore.pro: accessibility/AccessibilityScrollbar.cpp and accessibility/AccessibilityScrollbar.h added.
839
840 2010-01-21  Dave Hyatt  <hyatt@apple.com>
841
842         Reviewed by Oliver Hunt.
843
844         Make sure to do a JSLock before deserialization of script values, since they can heap allocate.
845
846         * bindings/js/SerializedScriptValue.cpp:
847         (WebCore::SerializedScriptValueData::deserialize):
848
849 2010-01-21  Beth Dakin  <bdakin@apple.com>
850
851         Reviewed by Oliver Hunt.
852
853         Fix for https://bugs.webkit.org/show_bug.cgi?id=33923 REGRESSION 
854         (Safari 4): AXValueChanged no longer sent for text area scrollbars
855         -and corresponding-
856         <rdar://problem/6942686>
857
858         New class AccessibilityScrollbar inherits directly from 
859         AccessibilityObject.
860         * accessibility/AccessibilityScrollbar.cpp: Added.
861         (WebCore::AccessibilityScrollbar::AccessibilityScrollbar):
862         (WebCore::AccessibilityScrollbar::create):
863         (WebCore::AccessibilityScrollbar::valueForRange):
864         * accessibility/AccessibilityScrollbar.h: Added.
865         (WebCore::AccessibilityScrollbar::setScrollbar):
866         (WebCore::AccessibilityScrollbar::roleValue):
867         (WebCore::AccessibilityScrollbar::accessibilityIsIgnored):
868         (WebCore::AccessibilityScrollbar::size):
869         (WebCore::AccessibilityScrollbar::elementRect):
870         (WebCore::AccessibilityScrollbar::parentObject):
871
872         AXObjectCache::getOrCreate() now has a case for ScrollBarRole, 
873         which will create a new AccessibilityScrollbar. I also added a new 
874         version of postNotification() that does not require a renderer. The 
875         old postNotification() calls the new one.
876         * accessibility/AXObjectCache.cpp:
877         (WebCore::AXObjectCache::getOrCreate):
878         (WebCore::AXObjectCache::postNotification):
879         * accessibility/AXObjectCache.h:
880
881         When AX is enabled, getOrCreate an AccessibilityScrollbar and send 
882         a notification.
883         * platform/Scrollbar.cpp:
884         (WebCore::Scrollbar::scroll):
885
886         Fix project files.
887         * GNUmakefile.am:
888         * WebCore.vcproj/WebCore.vcproj:
889         * WebCore.xcodeproj/project.pbxproj:
890         * WebCoreSources.bkl:
891
892 2010-01-21  Eric Uhrhane  <ericu@chromium.org>
893
894         Reviewed by Dmitry Titov.
895
896         Add changes missing from r53595, without which Chromium has no database.
897
898         https://bugs.webkit.org/show_bug.cgi?id=33966
899
900         No new tests - fixes database layout tests in Chromium.
901
902         * bindings/v8/RuntimeEnabledFeatures.cpp:
903         * bindings/v8/RuntimeEnabledFeatures.h:
904
905 2010-01-21  Jakob Petsovits  <jpetsovits@rim.com>
906
907         Reviewed by Adam Treat.
908
909         Don't call vgGetError()/eglGetError() repeatedly
910         https://bugs.webkit.org/show_bug.cgi?id=33959
911
912         For vgGetError(), I missed the part of the spec where
913         it says that calling that function clears the error
914         and subsequent calls will return VG_NO_ERROR again.
915
916         For eglGetError(), the specification doesn't mention
917         that kind of behavior, and interpretations seem to
918         differ between EGL implementations (even within
919         Khronos: the OpenVG reference implementation doesn't
920         reset the error code - and even mentions the difference
921         to vgGetError() in a comment - whereas the online
922         OpenGL ES API document explicitly specifies clearing
923         the error code).
924
925         It thus makes sense not to call either of the two
926         error functions more than once for checking a single
927         EGL/OpenVG call. This patch adapts assertions to
928         accommodate for this behavior, and also needs to
929         change surface creation methods as they previously
930         relied on multiple calls of eglGetError().
931
932         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
933         (WebCore::EGLDisplayOpenVG::sharedPlatformSurface):
934         (WebCore::EGLDisplayOpenVG::createPbufferSurface):
935         * platform/graphics/openvg/EGLDisplayOpenVG.h:
936         * platform/graphics/openvg/EGLUtils.h:
937         * platform/graphics/openvg/SurfaceOpenVG.cpp:
938         (WebCore::SurfaceOpenVG::SurfaceOpenVG):
939         * platform/graphics/openvg/SurfaceOpenVG.h:
940         * platform/graphics/openvg/VGUtils.h:
941
942 2010-01-20  Simon Fraser  <simon.fraser@apple.com>
943
944         Reviewed by Dave Hyatt.
945
946         Hit testing on composited plugins is broken
947         https://bugs.webkit.org/show_bug.cgi?id=33927
948         <rdar://problem/7559069>
949
950         RenderWidget::paint()'s strategy of moving widgets at paint time, using tx and ty, was flawed
951         because tx,ty are not always root-relative, especially when painting into compositing layers.
952         This would move widgets to the wrong location, which caused hit testing issues.
953         
954         Widgets are usually positioned by layout. The one time this was not true was scrolling fixed-position
955         elements, so we now reposition widgets after scrolling too.
956         
957         There was a related problem, which was that widgets expect the graphics context to be set up for
958         root-relative painting. To fix this, adjust the CTM and the paintRect when the widget's frameRect
959         is in a different coordinate system to the painting offset.
960         
961         Test: plugins/mouse-events-fixedpos.html
962
963         * page/FrameView.cpp:
964         (WebCore::FrameView::scrollPositionChanged): Update widget positions, to handle widgets in fixed position
965         elements, but only if we're not already inside of layout.
966
967         * platform/graphics/GraphicsContext.h:
968         (WebCore::GraphicsContext::translate): Add a translate() convenience method that takes a FloatSize.
969
970         * platform/graphics/IntSize.h:
971         (WebCore::IntSize::isZero): Add a convenience method for testing for a zero size.
972
973         * platform/mac/WidgetMac.mm:
974         (WebCore::Widget::paint): Adjust a comment.
975
976         * rendering/RenderWidget.cpp:
977         (WebCore::RenderWidget::paint): Detect when the widget's frame is in a different coordinate system
978         to painting, and adjust the CTM and paintRect in that case.
979
980 2010-01-21  Andrei Popescu  <andreip@google.com>
981
982         Reviewed by David Levin.
983
984         [Android] bindings/v8/NPV8Object.cpp does not compile on Android
985         https://bugs.webkit.org/show_bug.cgi?id=33608
986
987         Use the standard WebKit header in bridge/npruntime.h.
988         Include PlatformBridge.h instead of ChroimiumBridge.h.
989         Add popupsAllowed() method to PlatformBridge.h on Android.
990         Add ARRAYSIZE_UNSAFE to PlatformBridge.h on Android.
991
992         No new tests, fixing the build.
993
994         * bindings/v8/NPV8Object.cpp:
995         (_NPN_Evaluate):
996         * bindings/v8/NPV8Object.h:
997         * platform/android/PlatformBridge.h:
998
999 2010-01-21  Andrei Popescu  <andreip@google.com>
1000
1001         Reviewed by David Levin.
1002
1003         Add PlatformBridge.h header and a typedef to give ChromiumBridge a new name: PlatformBridge.
1004         https://bugs.webkit.org/show_bug.cgi?id=33917
1005
1006         No new tests needed, this is just to allow other methods to call ChromiumBridge
1007         using the new 'PlatformBridge' name.
1008
1009         * platform/chromium/PlatformBridge.h: Added.
1010
1011 2010-01-21  Csaba Osztrogonác  <ossy@webkit.org>
1012
1013         [Qt] Unreviewed buildfix after r53625.
1014
1015         Cleanup MediaPlayer and MediaPlayerPrivateInterface to remove dead methods
1016         https://bugs.webkit.org/show_bug.cgi?id=30106
1017
1018         * platform/qt/RenderThemeQt.cpp:
1019         (WebCore::RenderThemeQt::paintMediaSliderTrack):
1020
1021 2010-01-21  Andrei Popescu  <andreip@google.com>
1022
1023         Reviewed by David Levin.
1024
1025         [Android] bindings/v8/V8DOMWrapper.h[cpp] are missing guards for XPATH and XSLT features
1026         https://bugs.webkit.org/show_bug.cgi?id=33944
1027
1028         Inside V8DOMWrapper.h[cpp], the code for XPATH and XSLT features is not guarded
1029         by the appropriate #if ENABLE(feature) macros. Add the missing guards.
1030         V8DOMWrapper.cpp includes ChromiumBridge.h for no reason. Remove the include.
1031
1032         No new tests needed, functionality not changed.
1033
1034         * bindings/v8/V8DOMWrapper.cpp:
1035         (WebCore::V8DOMWrapper::getTemplate):
1036         * bindings/v8/V8DOMWrapper.h:
1037
1038 2010-01-21  Eric Carlson  <eric.carlson@apple.com>
1039
1040         Reviewed by Darin Adler.
1041
1042         Intermittent crash when media element is adopted by another document
1043         https://bugs.webkit.org/show_bug.cgi?id=33919
1044         rdar://problem/7557527
1045         
1046         Test: media/adopt-node-crash.html
1047
1048         * html/HTMLMediaElement.cpp:
1049         (WebCore::HTMLMediaElement::willMoveToNewOwnerDocument): Unregister for
1050         document callbacks.
1051         (WebCore::HTMLMediaElement::didMoveToNewOwnerDocument): Register for
1052         document callbacks.
1053         * html/HTMLMediaElement.h:
1054
1055 2010-01-21  Adam Roben  <aroben@apple.com>
1056
1057         More Windows build fixing
1058
1059         * WebCore.vcproj/WebCore.vcproj: Copy bridge/jsc in the post-build
1060         event of all configurations, not just Debug.
1061
1062 2010-01-21  Thiago Macieira  <thiago.macieira@nokia.com>
1063
1064         Reviewed by Simon Hausmann.
1065
1066         [Qt] Fix incorrect dependency to QtXmlPatterns in generated include/QtWebKit/QtWebKit header
1067
1068         The generated file includes QtXmlPatterns/QtXmlPatterns, which is neither used/required by
1069         the public QtWebKit API nor will it be available if Qt is configured with -no-xmlpatterns.
1070
1071         * WebCore.pro: Trick syncqt to believe that xmlpatterns is not a dependency, so that it's not
1072         included in the generated file. It'll still be used and linked to with this trick.
1073
1074 2010-01-21  Steve Block  <steveblock@google.com>
1075
1076         Unreviewed build fix.
1077
1078         Copy BridgeJSC.h to generated headers on Windows
1079
1080         No new tests, build fix only.
1081
1082         * WebCore.vcproj/WebCore.vcproj:
1083
1084 2010-01-21  Eric Carlson  <eric.carlson@apple.com>
1085
1086         Reviewed by Darin Adler.
1087
1088         Cleanup MediaPlayer and MediaPlayerPrivateInterface to remove dead methods
1089         https://bugs.webkit.org/show_bug.cgi?id=30106
1090
1091         No new tests, only dead code was removed.
1092
1093         * platform/graphics/MediaPlayer.cpp:
1094         * platform/graphics/MediaPlayer.h:
1095         * platform/graphics/MediaPlayerPrivate.h:
1096         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1097         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1098         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1099         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1100         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
1101         * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
1102         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
1103         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1104         (WebCore::MediaPlayerPrivate::currentTime):
1105         (WebCore::MediaPlayerPrivate::doSeek):
1106         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
1107         * platform/graphics/wince/MediaPlayerPrivateWince.h:
1108
1109 2010-01-21  Iain Campbell <iain.campbell@accenture.com>
1110
1111         Reviewed by Simon Hausmann.
1112
1113         [Qt] Simplify the qmake code for freezing QtWebKit on Symbian.
1114
1115         * WebCore.pro:
1116
1117 2010-01-21  Steve Block  <steveblock@google.com>
1118
1119         Unreviewed speculative build fix for Windows.
1120
1121         Adds missing include path for JSCBridge.h on Windows, added in http://trac.webkit.org/changeset/53620
1122
1123         No new tests, build fix only.
1124
1125         * WebCore.vcproj/WebCoreCommon.vsprops:
1126
1127 2010-01-21  Steve Block  <steveblock@google.com>
1128
1129         Unreviewed build fix.
1130
1131         Adds missing include path for JSCBridge.h, added in http://trac.webkit.org/changeset/53620
1132
1133         No new tests, build fix only.
1134
1135         * GNUmakefile.am:
1136         * WebCore.pro:
1137         * WebCore.vcproj/WebCore.vcproj:
1138         * WebCore.xcodeproj/project.pbxproj:
1139
1140 2010-01-21  Steve Block  <steveblock@google.com>
1141
1142         Reviewed by David Levin.
1143
1144         Move bridge interfaces Field, Class, Instance and Array from Bridge to BridgeJSC
1145         https://bugs.webkit.org/show_bug.cgi?id=33589
1146
1147         These interfaces use JSC-specific types, so are moved out of Bridge.h to allow the file to
1148         be used with both JSC and V8.
1149
1150         No new tests, refactoring only.
1151
1152         * Android.jscbindings.mk: Modified. Removed Bridge.cpp and added BridgeJSC.cpp
1153         * GNUmakefile.am: Modified. Removed Bridge.cpp and added BridgeJSC.[cpp|h]
1154         * WebCore.pro: Modified. Removed Bridge.cpp and added BridgeJSC.[cpp|h]
1155         * WebCore.xcodeproj/project.pbxproj: Modified. Removed Bridge.cpp and added BridgeJSC.[cpp|h]
1156         * WebCoreSources.bkl: Modified. Removed Bridge.cpp and added BridgeJSC.cpp
1157         * bridge/Bridge.cpp: Removed.
1158         * bridge/Bridge.h: Modfied. Moved Field, Class, Instance and Array interfaces to BridgeJSC.h
1159         * bridge/jsc: Added.
1160         * bridge/jsc/BridgeJSC.cpp: Copied from WebCore/bridge/Bridge.cpp.
1161         * bridge/jsc/BridgeJSC.h: Copied from WebCore/bridge/Bridge.h.
1162
1163 2010-01-21  Steve Block  <steveblock@google.com>
1164
1165         Reviewed by David Levin.
1166
1167         Fixes style in WebCore/bridge/jni/JNIBridge
1168         https://bugs.webkit.org/show_bug.cgi?id=33914
1169
1170         No new tests, style fixes only.
1171
1172         * bridge/jni/JNIBridge.cpp:
1173         * bridge/jni/JNIBridge.h:
1174
1175 2010-01-13  Philippe Normand  <pnormand@igalia.com>
1176
1177         Reviewed by Oliver Hunt.
1178
1179         [GTK] handle media redirections
1180         https://bugs.webkit.org/show_bug.cgi?id=33539
1181
1182         Media redirections support.
1183
1184         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
1185         (WebCore::mediaPlayerPrivateMessageCallback):
1186         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1187         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
1188         (WebCore::MediaPlayerPrivate::mediaLocationChanged):
1189         (WebCore::MediaPlayerPrivate::loadNextLocation):
1190         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
1191         (WebCore::MediaPlayerPrivate::pipelineReset):
1192
1193 2010-01-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
1194
1195         Reviewed by Antti Koivisto.
1196
1197         [Qt] Implement GraphicsLayer for accelerated layer compositing
1198         https://bugs.webkit.org/show_bug.cgi?id=33514
1199
1200         No new tests: tests in LayoutTests/compositing are now relevant for
1201         QtWebkit!
1202
1203         * WebCore.pro: added accelerated-compositing related files 
1204         * platform/graphics/GraphicsLayer.h: define Qt-specific implementation           of GraphicsLayer
1205         * platform/graphics/qt/GraphicsLayerQt.cpp: Added.
1206         (WebCore::GraphicsLayerQtImpl::): Implementation of GraphicsLayer with
1207         a QGraphicsItem
1208         (WebCore::GraphicsLayerQtImpl::ContentData::ContentData): save 
1209         pixmap/color info for directly composited content
1210         (WebCore::GraphicsLayerQtImpl::State::State): save info for syncing
1211         (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl): ctor
1212         (WebCore::GraphicsLayerQtImpl::~GraphicsLayerQtImpl): dtor
1213         (WebCore::GraphicsLayerQtImpl::setBaseTransform): set Qt
1214         transformation in the way WebCore wants it
1215         (WebCore::GraphicsLayerQtImpl::opaqueArea): calculate opaque area
1216         based on info we have
1217         (WebCore::GraphicsLayerQtImpl::boundingRect): reimp QGraphicsItem
1218         (WebCore::GraphicsLayerQtImpl::paint): reimp QGraphicsItem
1219         (WebCore::GraphicsLayerQtImpl::drawContents): draw HTML/Pixmap/Color
1220         (WebCore::GraphicsLayerQtImpl::notifyChange): let WebCore know
1221         something has changed
1222         (WebCore::GraphicsLayerQtImpl::flushChanges): Make the changes appear
1223         on screen by setting them to QGraphicsItems
1224         (WebCore::GraphicsLayerQtImpl::notifyAnimationStarted): let WebCore
1225         know the QAnimation started
1226         (WebCore::GraphicsLayerQt::GraphicsLayerQt): ctor
1227         (WebCore::GraphicsLayerQt::~GraphicsLayerQt): dtor
1228         (WebCore::GraphicsLayer::create): hook for WebCore to know we're
1229         implementing compositing
1230         (WebCore::GraphicsLayer::compositingCoordinatesOrientation): hook for
1231         WebCore to know we use a top-down system
1232         (WebCore::GraphicsLayerQt::setNeedsDisplay): update the display
1233         (WebCore::GraphicsLayerQt::setNeedsDisplayInRect): udpate part of the
1234         display
1235         (WebCore::GraphicsLayerQt::setName): reimp
1236         (WebCore::GraphicsLayerQt::setParent): reimp
1237         (WebCore::GraphicsLayerQt::setChildren): reimp
1238         (WebCore::GraphicsLayerQt::addChild): reimp
1239         (WebCore::GraphicsLayerQt::addChildAtIndex): reimp
1240         (WebCore::GraphicsLayerQt::addChildAbove): reimp
1241         (WebCore::GraphicsLayerQt::addChildBelow): reimp
1242         (WebCore::GraphicsLayerQt::replaceChild): reimp
1243         (WebCore::GraphicsLayerQt::removeFromParent): reimp
1244         (WebCore::GraphicsLayerQt::setMaskLayer): reimp
1245         (WebCore::GraphicsLayerQt::setPosition): reimp
1246         (WebCore::GraphicsLayerQt::setAnchorPoint): reimp
1247         (WebCore::GraphicsLayerQt::setSize): reimp
1248         (WebCore::GraphicsLayerQt::setTransform): reimp
1249         (WebCore::GraphicsLayerQt::setChildrenTransform): reimp
1250         (WebCore::GraphicsLayerQt::setPreserves3D): reimp
1251         (WebCore::GraphicsLayerQt::setMasksToBounds): reimp
1252         (WebCore::GraphicsLayerQt::setDrawsContent): reimp
1253         (WebCore::GraphicsLayerQt::setBackgroundColor): reimp
1254         (WebCore::GraphicsLayerQt::clearBackgroundColor): reimp
1255         (WebCore::GraphicsLayerQt::setContentsOpaque): reimp
1256         (WebCore::GraphicsLayerQt::setBackfaceVisibility): reimp
1257         (WebCore::GraphicsLayerQt::setOpacity): reimp
1258         (WebCore::GraphicsLayerQt::setContentsRect): reimp
1259         (WebCore::GraphicsLayerQt::setContentsToImage): reimp
1260         (WebCore::GraphicsLayerQt::setContentsBackgroundColor): reimp
1261         (WebCore::GraphicsLayerQt::setGeometryOrientation): reimp
1262         (WebCore::GraphicsLayerQt::setContentsOrientation): reimp
1263         (WebCore::GraphicsLayerQt::distributeOpacity): reimp
1264         (WebCore::GraphicsLayerQt::accumulatedOpacity): reimp
1265         (WebCore::GraphicsLayerQt::syncCompositingState): reimp
1266         (WebCore::GraphicsLayerQt::nativeLayer): reimp (QGraphicsItem*)
1267         (WebCore::GraphicsLayerQt::platformLayer): reimp (QGraphicsItem*)
1268         (WebCore::solveEpsilon): copy from AnimationBase.cpp
1269         (WebCore::solveCubicBezierFunction): copy from AniamtionBase.cpp
1270         (WebCore::applyTimingFunction): use WebCore's timing and not Qt's
1271         (WebCore::webkitAnimationToQtAnimationValue): safely figure out
1272         animation values
1273         (WebCore::AnimationQtBase::AnimationQtBase): base class for Qt-based
1274         Webcore-initiated animations
1275         (WebCore::AnimationQtBase::updateState): notify when an animation
1276         starts
1277         (WebCore::AnimationQtBase::duration): reimp QAbstractAnimation
1278         (WebCore::AnimationQt:::AnimationQtBase):
1279         (WebCore::AnimationQt::updateCurrentTime): realize keyframes from
1280         progress
1281         (WebCore::TransformAnimationQt::TransformAnimationQt): ctor
1282         (WebCore::TransformAnimationQt::~TransformAnimationQt): dtor
1283         (WebCore::TransformAnimationQt::applyFrame): set the actual QTransform
1284         based on WebCore TransformOperations
1285         (WebCore::TransformAnimationQt::updateState): change cache mode
1286         (WebCore::OpacityAnimationQt::OpacityAnimationQt):
1287         (WebCore::OpacityAnimationQt::applyFrame): change item's opacity
1288         (WebCore::OpacityAnimationQt::updateState):
1289         (WebCore::GraphicsLayerQt::addAnimation): convert WebCore Animation to
1290         Qt Animation
1291         (WebCore::GraphicsLayerQt::removeAnimationsForProperty):
1292         (WebCore::GraphicsLayerQt::removeAnimationsForKeyframes):
1293         (WebCore::GraphicsLayerQt::pauseAnimation):
1294         (WebCore::GraphicsLayerQt::suspendAnimations):
1295         (WebCore::GraphicsLayerQt::resumeAnimations):
1296         * platform/graphics/qt/GraphicsLayerQt.h: Added.
1297         * platform/qt/QWebPageClient.h: virtual functions for QGraphicsWebView
1298         compositing
1299         (QWebPageClient::setRootGraphicsLayer): let QGraphicsWebView know that
1300         compositing has started/ended
1301         (QWebPageClient::markForSync): let QGraphicsWebView know the
1302         compositing layers need to sync, either soon or with the next update
1303
1304 2010-01-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
1305
1306         Reviewed by Simon Hausmann.
1307
1308         [Qt] Adding QPixmap/QImage support for the Qt hybrid layer
1309         Allows accesing QPixmap and QImage based arguments from Qt signals,
1310         slots and properties
1311         This is done by an intermediate object that can be turned into
1312         web-based objects by calling either toHTMLImageElement() or
1313         toDataURL()
1314         https://bugs.webkit.org/show_bug.cgi?id=32461
1315
1316         Tests are in WebKit/qt/tests/hybridPixmap
1317
1318         * WebCore.pro:
1319         * bridge/qt/qt_pixmapruntime.cpp: Added.
1320         (JSC::Bindings::QtPixmapWidthField::name): "width"
1321         (JSC::Bindings::QtPixmapWidthField::valueFromInstance): width of
1322         pixmap
1323         (JSC::Bindings::QtPixmapWidthField::setValueToInstance): nothing
1324         (JSC::Bindings::QtPixmapHeightField::name): "height"
1325         (JSC::Bindings::QtPixmapHeightField::valueFromInstance): height of
1326         pixmap
1327         (JSC::Bindings::QtPixmapHeightField::setValueToInstance): nothing
1328         (JSC::Bindings::QtPixmapRuntimeMethod::numParameters): 0
1329         (JSC::Bindings::QtPixmapCreateElementMethod::name): toHTMLImageElement
1330         (JSC::Bindings::QtPixmapCreateElementMethod::invoke): creates an HTML
1331         element from the QPixmap
1332         (JSC::Bindings::QtPixmapToDataUrlMethod::name): "toDataURL"
1333         (JSC::Bindings::QtPixmapToDataUrlMethod::invoke): encodes the image to
1334         a base64 data url
1335         (JSC::Bindings::QtPixmapToStringMethod::name): "toString"
1336         (JSC::Bindings::QtPixmapToStringMethod::invoke): [Qt Native Pixmap
1337         w,h]
1338
1339         (JSC::Bindings::QtPixmapRuntimeObjectImp::createStructure):
1340         runtime-object broilerplate
1341         (JSC::Bindings::QtPixmapRuntimeObjectImp::classInfo): ditto
1342         (JSC::Bindings::QtPixmapRuntimeObjectImp::QtPixmapRuntimeObjectImp):
1343         ditto
1344         (JSC::Bindings::): ditto
1345         (JSC::Bindings::QtPixmapClass::QtPixmapClass): class for the
1346         intermediate pixmap-holder 
1347         (JSC::Bindings::QtPixmapInstance::getClass): ditto
1348         (JSC::Bindings::QtPixmapInstance::invokeMethod): ditto
1349         (JSC::Bindings::QtPixmapClass::methodsNamed): toHTMLImageElement,
1350         toDataURL
1351         (JSC::Bindings::QtPixmapClass::fieldNamed): width, height
1352         (JSC::Bindings::QtPixmapInstance::getPropertyNames):
1353                 toHTMLImageElement, toDataURL, width, height
1354         (JSC::Bindings::QtPixmapInstance::defaultValue): nothing
1355         (JSC::Bindings::QtPixmapInstance::valueOf): toString
1356         (JSC::Bindings::data): holds a QVariant of type QImage/QPixmap
1357         (JSC::Bindings::QtPixmapInstance::width): width of the image/pixmap
1358         (JSC::Bindings::QtPixmapInstance::height): height of the image/pixmap
1359         (JSC::Bindings::QtPixmapInstance::toPixmap): converts to a QPixmap
1360         (JSC::Bindings::QtPixmapInstance::toImage): converts to a QImage
1361         (JSC::Bindings::QtPixmapInstance::variantFromObject): makes sure this
1362         is the right type of object, and creates a QVariant
1363         (JSC::Bindings::QtPixmapInstance::createRuntimeObject): creates a new
1364         intermediate pixmap holder from a QVariant
1365         (JSC::Bindings::QtPixmapInstance::canHandle): returns true if a
1366         QPixmap/QImage is required
1367         * bridge/qt/qt_pixmapruntime.h: Added.
1368         * bridge/qt/qt_runtime.cpp: hooks for the bridge
1369         (JSC::Bindings::convertValueToQVariant): handle QPixmap/QImage if the
1370         object is the intermediate pixmap holder or an HTMLImageElement
1371         (JSC::Bindings::convertQVariantToValue): creates the intermediate
1372         object from a QVariant of type QImage/QPixmap
1373
1374 2010-01-21  Luiz Agostini  <luiz.agostini@openbossa.org>
1375
1376         Reviewed by Kenneth Rohde Christiansen.
1377
1378         [Qt] Custom select popups.
1379         https://bugs.webkit.org/show_bug.cgi?id=33418
1380
1381         Optimization of the WebCore support to combobox popup delegate.
1382
1383         * platform/qt/PopupMenuQt.cpp:
1384         (WebCore::PopupMenu::show):
1385         * platform/qt/QtAbstractWebPopup.cpp:
1386         (WebCore::QtAbstractWebPopup::QtAbstractWebPopup):
1387         (WebCore::QtAbstractWebPopup::itemType):
1388         * platform/qt/QtAbstractWebPopup.h:
1389         (WebCore::QtAbstractWebPopup::):
1390         (WebCore::QtAbstractWebPopup::itemText):
1391         (WebCore::QtAbstractWebPopup::itemToolTip):
1392         (WebCore::QtAbstractWebPopup::itemIsEnabled):
1393         (WebCore::QtAbstractWebPopup::itemCount):
1394         (WebCore::QtAbstractWebPopup::view):
1395         (WebCore::QtAbstractWebPopup::geometry):
1396         (WebCore::QtAbstractWebPopup::currentIndex):
1397         (WebCore::QtAbstractWebPopup::font):
1398
1399 2010-01-20  Adam Barth  <abarth@webkit.org>
1400
1401         Reviewed by Darin Adler.
1402
1403         Stylesheet href property shows redirected URL unlike other browsers
1404         https://bugs.webkit.org/show_bug.cgi?id=33683
1405
1406         Teach StyleSheet the difference between original and final URLs in
1407         redirect chains.  Unfortunately, StyleSheet needs to know both of these
1408         URLs.  The original URL is needed for the href property and the final
1409         URL is needed as the baseURL.
1410
1411         This change required touching a lot of lines of code because we need to
1412         plumb this information to the StyleSheet object.  I audited all
1413         existing clients of href() and setHref() to see whether they wanted the
1414         original or final URLs.  I then updated the clients (except the JS
1415         bindings themselves) to use the correct accessor.
1416
1417         Test: http/tests/security/stylesheet-href-redirect.html
1418
1419         * css/CSSImportRule.cpp:
1420         (WebCore::CSSImportRule::setCSSStyleSheet):
1421         (WebCore::CSSImportRule::insertedIntoParent):
1422         * css/CSSImportRule.h:
1423         * css/CSSStyleSheet.cpp:
1424         (WebCore::CSSStyleSheet::CSSStyleSheet):
1425         * css/CSSStyleSheet.h:
1426         (WebCore::CSSStyleSheet::create): 
1427         (WebCore::CSSStyleSheet::createInline): Added a new constructor to deal
1428         with "inline" style sheets that don't have a distinct original and
1429         final URL.
1430         * css/StyleBase.cpp:
1431         (WebCore::StyleBase::baseURL): This code wants to use the final URL,
1432         not the original URL.  Updated it to grab the baseURL directly.
1433         * css/StyleSheet.cpp:
1434         (WebCore::StyleSheet::StyleSheet):
1435         * css/StyleSheet.h:
1436         (WebCore::StyleSheet::href):
1437         (WebCore::StyleSheet::setBaseURL): This function really just updates
1438         the base URL of the style sheet, so I made it more explicit.
1439         (WebCore::StyleSheet::putativeBaseURL): We need an accessor for the
1440         base URL, but baseURL is already taken.
1441         * dom/Document.cpp:
1442         (WebCore::Document::updateBaseURL):
1443         (WebCore::Document::pageUserSheet):
1444         (WebCore::Document::pageGroupUserSheets):
1445         (WebCore::Document::elementSheet):
1446         (WebCore::Document::mappedElementSheet):
1447         * dom/ProcessingInstruction.cpp:
1448         (WebCore::ProcessingInstruction::checkStyleSheet):
1449         (WebCore::ProcessingInstruction::setCSSStyleSheet):
1450         (WebCore::ProcessingInstruction::setXSLStyleSheet):
1451         * dom/ProcessingInstruction.h:
1452         * dom/StyleElement.cpp:
1453         (WebCore::StyleElement::createSheet):
1454         * html/HTMLLinkElement.cpp:
1455         (WebCore::HTMLLinkElement::setCSSStyleSheet):
1456         * html/HTMLLinkElement.h:
1457         * loader/CachedCSSStyleSheet.cpp:
1458         (WebCore::CachedCSSStyleSheet::didAddClient):
1459         (WebCore::CachedCSSStyleSheet::checkNotify): This code now passes both
1460         the original and final URL into setCSSStyleSheet so that the style
1461         sheet can have both.
1462         * loader/CachedResourceClient.h:
1463         (WebCore::CachedResourceClient::setCSSStyleSheet):
1464         (WebCore::CachedResourceClient::setXSLStyleSheet):
1465         * loader/CachedXSLStyleSheet.cpp:
1466         (WebCore::CachedXSLStyleSheet::didAddClient):
1467         (WebCore::CachedXSLStyleSheet::checkNotify): I don't have any direct
1468         evidence that we need to change the XSLStyleSheet behavior, which is
1469         why I wasn't able to add a test for the behavior.  However, the objects
1470         are parallel enough that it seemed like the right thing to do.
1471         * xml/XSLImportRule.cpp:
1472         (WebCore::XSLImportRule::setXSLStyleSheet):
1473         (WebCore::XSLImportRule::loadSheet):
1474         * xml/XSLImportRule.h:
1475         * xml/XSLStyleSheet.h:
1476         (WebCore::XSLStyleSheet::create):
1477         (WebCore::XSLStyleSheet::createEmbedded):
1478         * xml/XSLStyleSheetLibxslt.cpp:
1479         (WebCore::XSLStyleSheet::XSLStyleSheet):
1480         (WebCore::XSLStyleSheet::parseString):
1481         (WebCore::XSLStyleSheet::loadChildSheets):
1482         * xml/XSLStyleSheetQt.cpp:
1483         (WebCore::XSLStyleSheet::XSLStyleSheet):
1484         * xml/XSLTProcessorLibxslt.cpp:
1485         (WebCore::xsltStylesheetPointer):
1486         * xml/XSLTProcessorQt.cpp:
1487         (WebCore::XSLTProcessor::transformToString):
1488
1489 2010-01-20  Kwang Yul Seo  <skyul@company100.net>
1490
1491         Reviewed by Alexey Proskuryakov.
1492
1493         Use xmlStrdup instead of strdup for consistency in Libxml2.
1494         https://bugs.webkit.org/show_bug.cgi?id=33935
1495
1496         Remove the direct use of strdup.
1497
1498         * dom/XMLTokenizerLibxml2.cpp:
1499         (WebCore::PendingCallbacks::appendErrorCallback):
1500         (WebCore::PendingCallbacks::):
1501         (WebCore::XMLTokenizer::error):
1502
1503 2010-01-20  Oliver Hunt  <oliver@apple.com>
1504
1505         Reviewed by Dan Bernstein.
1506
1507         Insufficient repaint issues with html embedded in foreignObject
1508         https://bugs.webkit.org/show_bug.cgi?id=16318
1509
1510         Final part of fix -- now we render the selection rect of list
1511         markers in a transformed context.
1512
1513         * rendering/RenderListMarker.cpp:
1514         (WebCore::RenderListMarker::localSelectionRect):
1515         (WebCore::RenderListMarker::paint):
1516         * rendering/RenderListMarker.h:
1517
1518 2010-01-20  Daniel Bates  <dbates@webkit.org>
1519
1520         No review, rolling out 53591.
1521         http://trac.webkit.org/changeset/53591
1522         https://bugs.webkit.org/show_bug.cgi?id=29564
1523
1524         Rolling out the change committed in change set 53591
1525         <http://trac.webkit.org/changeset/53591> because it caused
1526         a regression of test /fast/replaced/table-percent-height.html
1527         on the Qt bot.
1528
1529         * platform/qt/RenderThemeQt.cpp:
1530         (WebCore::RenderThemeQt::adjustButtonStyle):
1531
1532 2010-01-20  Stephen White  <senorblanco@chromium.org>
1533
1534         Reviewed by David Levin.
1535
1536         Disable the "seatbelt" coordinate validation functions in the
1537         Skia graphics layer.  We believe all the underlying bugs have
1538         been fixed, but just in case we're being overly optimistic, this
1539         leaves in the code for an easy revert.
1540
1541         https://bugs.webkit.org/show_bug.cgi?id=33908
1542         Exercised by many layout tests.
1543
1544         * platform/graphics/skia/GraphicsContextSkia.cpp:
1545
1546 2010-01-20  Kent Tamura  <tkent@chromium.org>
1547
1548         Reviewed by Darin Adler.
1549
1550         HTMLInputElement::valueAsDate setter support for type=date.
1551         https://bugs.webkit.org/show_bug.cgi?id=33911
1552
1553         Introduce ISODateTime::setMillisecondsSinceEpochForDate() and add Date
1554         type support to ISODateTime::toString().
1555
1556         * html/HTMLInputElement.cpp:
1557         (WebCore::HTMLInputElement::setValueAsDate):
1558         * html/ISODateTime.cpp:
1559         (WebCore::ISODateTime::setMillisecondsSinceEpochForDate):
1560         (WebCore::ISODateTime::toString):
1561         * html/ISODateTime.h:
1562
1563 2010-01-20  Ben Murdoch  <benm@google.com>
1564
1565         Reviewed by Simon Hausmann.
1566
1567         Touch Events are not sent to iframes
1568         https://bugs.webkit.org/show_bug.cgi?id=33894
1569
1570         Fix the touch event handler so it does not bail out early if the main frame document does not have any touch listeners registered, as there may be embedded iframes that have registered for touch events.
1571
1572         Test: fast/events/touch/touch-inside-iframe.html
1573
1574         * page/EventHandler.cpp:
1575         (WebCore::EventHandler::handleTouchEvent): Instead of looking at the document of the main frame to see if touch event listeners are registered, look at the document of the target element to account for iframes.
1576
1577 2010-01-20  Michael Nordman  <michaeln@google.com>
1578
1579         Reviewed by Alexey Proskuryakov.
1580
1581         Remove an assertion that is not valid in some detached iframes cases.
1582         https://bugs.webkit.org/show_bug.cgi?id=33827
1583
1584         Test: http/tests/appcache/detached-iframe.html
1585
1586         * loader/appcache/DOMApplicationCache.cpp:
1587         (WebCore::DOMApplicationCache::DOMApplicationCache):
1588
1589 2010-01-20  Eric Uhrhane  <ericu@chromium.org>
1590
1591         Reviewed by Dmitry Titov.
1592
1593         Refactoring and plumbing to get the HTML5 SQL Database API accessible to
1594         web workers.  No new functionality is exposed yet; this just gets the
1595         infrastructure in place.  It touches a lot of files in small ways; here
1596         are the main changes:
1597
1598         1) Database members and methods move from Document up to
1599         ScriptExecutionContext.  Each of Document and WorkerContext must
1600         implement a few virtual methods where the Database code requires
1601         differentiation.
1602         2) Worker thread shutdown got changed a bunch to handle Database cleanup
1603         and thread synchronization issues.  Database cleanup tasks need to post
1604         some cleanup tasks to the JavaScript thread.  However, since database
1605         cleanup may happen due to the destruction of the WorkerThread, I added a
1606         handshake [involving WorkerThreadShutdownStartTask,
1607         WorkerThreadShutdownFinishTask, and a DatabaseTaskSynchronizer] between
1608         the Database thread and WorkerThread that cleans up all the Database
1609         stuff before the WorkerThread's runLoop can exit.
1610         3) The runtime enabler for the Database moved to a static variable
1611         accessible through Database::isAvailable, following the model used by
1612         WebSocket.
1613         4) Worker threads don't run their JavaScript on the Main thread, so
1614         Database code that differentiated between the Main thread and the
1615         Database thread now need to deal with a third possibility.
1616         5) Most of the other changes have to do with having a
1617         ScriptExecutionContext pointer instead of a Document pointer when
1618         dealing with a Database.  In many cases it's just a string replacement,
1619         but in some it required the creation of a new virtual function [e.g.
1620         databaseExceededQuota, isDatabaseReadOnly]
1621
1622         https://bugs.webkit.org/show_bug.cgi?id=22725
1623
1624         No new tests; in a future patch I'll add JSC and V8 bindings and new
1625         layout tests to exercise them.
1626
1627         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1628         (WebCore::V8DOMWindow::OpenDatabaseEnabled):
1629         * dom/Document.cpp:
1630         (WebCore::Document::Document):
1631         (WebCore::Document::~Document):
1632         (WebCore::Document::isDatabaseReadOnly):
1633         (WebCore::Document::databaseExceededQuota):
1634         (WebCore::Document::isContextThread):
1635         * dom/Document.h:
1636         * dom/ScriptExecutionContext.cpp:
1637         (WebCore::ScriptExecutionContext::ScriptExecutionContext):
1638         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
1639         (WebCore::ScriptExecutionContext::databaseThread):
1640         (WebCore::ScriptExecutionContext::addOpenDatabase):
1641         (WebCore::ScriptExecutionContext::removeOpenDatabase):
1642         (WebCore::ScriptExecutionContext::stopDatabases):
1643         * dom/ScriptExecutionContext.h:
1644         (WebCore::ScriptExecutionContext::setHasOpenDatabases):
1645         (WebCore::ScriptExecutionContext::hasOpenDatabases):
1646         (WebCore::ScriptExecutionContext::Task::isCleanupTask):
1647         * loader/FrameLoader.cpp:
1648         (WebCore::FrameLoader::stopLoading):
1649         * storage/Database.cpp:
1650         (WebCore::Database::setIsAvailable):
1651         (WebCore::Database::isAvailable):
1652         (WebCore::Database::openDatabase):
1653         (WebCore::Database::Database):
1654         (WebCore::DerefContextTask::create):
1655         (WebCore::DerefContextTask::performTask):
1656         (WebCore::DerefContextTask::isCleanupTask):
1657         (WebCore::Database::~Database):
1658         (WebCore::Database::openAndVerifyVersion):
1659         (WebCore::Database::markAsDeletedAndClose):
1660         (WebCore::ContextRemoveOpenDatabaseTask::create):
1661         (WebCore::ContextRemoveOpenDatabaseTask::performTask):
1662         (WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask):
1663         (WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask):
1664         (WebCore::Database::close):
1665         (WebCore::Database::performOpenAndVerify):
1666         (WebCore::Database::scheduleTransaction):
1667         (WebCore::Database::scheduleTransactionStep):
1668         (WebCore::DeliverPendingCallbackTask::create):
1669         (WebCore::DeliverPendingCallbackTask::performTask):
1670         (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask):
1671         (WebCore::Database::scheduleTransactionCallback):
1672         (WebCore::Database::transactionClient):
1673         (WebCore::Database::transactionCoordinator):
1674         (WebCore::Database::tableNames):
1675         (WebCore::Database::securityOrigin):
1676         * storage/Database.h:
1677         (WebCore::Database::scriptExecutionContext):
1678         * storage/DatabaseTask.h:
1679         * storage/DatabaseThread.cpp:
1680         (WebCore::DatabaseThread::DatabaseThread):
1681         (WebCore::DatabaseThread::~DatabaseThread):
1682         (WebCore::DatabaseThread::requestTermination):
1683         (WebCore::DatabaseThread::databaseThread):
1684         (WebCore::DatabaseThread::unscheduleDatabaseTasks):
1685         * storage/DatabaseThread.h:
1686         * storage/DatabaseTracker.cpp:
1687         (WebCore::DatabaseTracker::canEstablishDatabase):
1688         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
1689         * storage/DatabaseTracker.h:
1690         * storage/SQLTransaction.cpp:
1691         (WebCore::SQLTransaction::executeSQL):
1692         * storage/SQLTransactionClient.cpp:
1693         (WebCore::SQLTransactionClient::didCommitTransaction):
1694         (WebCore::SQLTransactionClient::didExecuteStatement):
1695         (WebCore::SQLTransactionClient::didExceedQuota):
1696         * storage/chromium/DatabaseTrackerChromium.cpp:
1697         (WebCore::DatabaseTracker::canEstablishDatabase):
1698         (WebCore::DatabaseTracker::addOpenDatabase):
1699         (WebCore::TrackerRemoveOpenDatabaseTask::create):
1700         (WebCore::TrackerRemoveOpenDatabaseTask::performTask):
1701         (WebCore::TrackerRemoveOpenDatabaseTask::TrackerRemoveOpenDatabaseTask):
1702         (WebCore::DatabaseTracker::removeOpenDatabase):
1703         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
1704         * storage/chromium/SQLTransactionClientChromium.cpp:
1705         (WebCore::NotifyDatabaseChangedTask::create):
1706         (WebCore::NotifyDatabaseChangedTask::performTask):
1707         (WebCore::NotifyDatabaseChangedTask::NotifyDatabaseChangedTask):
1708         (WebCore::SQLTransactionClient::didCommitTransaction):
1709         (WebCore::SQLTransactionClient::didExecuteStatement):
1710         (WebCore::SQLTransactionClient::didExceedQuota):
1711         * workers/WorkerContext.cpp:
1712         (WebCore::WorkerContext::openDatabase):
1713         (WebCore::WorkerContext::isContextThread):
1714         * workers/WorkerContext.h:
1715         (WebCore::WorkerContext::clearScript):
1716         (WebCore::WorkerContext::thread):
1717         (WebCore::WorkerContext::isDatabaseReadOnly):
1718         (WebCore::WorkerContext::databaseExceededQuota):
1719         * workers/WorkerRunLoop.cpp:
1720         (WebCore::WorkerRunLoop::runInMode):
1721         (WebCore::WorkerRunLoop::Task::performTask):
1722         * workers/WorkerThread.cpp:
1723         (WebCore::WorkerThread::workerThread):
1724         (WebCore::WorkerThreadShutdownFinishTask::create):
1725         (WebCore::WorkerThreadShutdownFinishTask::performTask):
1726         (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask):
1727         (WebCore::WorkerThreadShutdownStartTask::create):
1728         (WebCore::WorkerThreadShutdownStartTask::performTask):
1729         (WebCore::WorkerThreadShutdownStartTask::isCleanupTask):
1730         (WebCore::WorkerThread::stop):
1731
1732 2010-01-20  Fumitoshi Ukai  <ukai@chromium.org>
1733
1734         Reviewed by Alexey Proskuryakov.
1735
1736         WebSocket: Request-URI should not be empty when no tralling slash in host
1737         https://bugs.webkit.org/show_bug.cgi?id=33689
1738
1739         Test: websocket/tests/url-no-trailing-slash.html
1740
1741         * websockets/WebSocketHandshake.cpp:
1742         (WebCore::resourceName):
1743
1744 2010-01-20  Daniel Bates  <dbates@webkit.org>
1745
1746         Reviewed by Tor Arne Vestbø.
1747
1748         https://bugs.webkit.org/show_bug.cgi?id=29564
1749
1750         [Qt] Fixes an issue where the height of <button>- and
1751         <input type="button">- elements are fixed to the height of the
1752         button label font plus padding. That is, the CSS height property
1753         is being ignored.
1754
1755         Instead, we should honor the user-specified height, if appropriate
1756         for the platform and context. Notice, the Mac ports do not honor the
1757         height for <input type="button"> elements unless a border and/or
1758         background is also specified.
1759
1760         Test: fast/css/button-height.html
1761
1762         * platform/qt/RenderThemeQt.cpp:
1763         (WebCore::RenderThemeQt::RenderThemeQt):
1764         (WebCore::RenderThemeQt::adjustButtonStyle):
1765
1766 2010-01-20  Brady Eidson  <beidson@apple.com>
1767
1768         Reviewed by Sam Weinig.
1769
1770         Assertion failure calling history.pushState within popstate event handler.
1771         https://bugs.webkit.org/show_bug.cgi?id=33830
1772
1773         Test: fast/loader/stateobjects/pushstate-within-popstate-handler-assert.html
1774
1775         * loader/FrameLoader.cpp:
1776         (WebCore::FrameLoader::navigateWithinDocument): Remove the ASSERT and invalid part of the comment.
1777
1778 2010-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>
1779
1780         Reviewed by Oliver Hunt.
1781
1782         Crash on dispatching SVG mouse events
1783         https://bugs.webkit.org/show_bug.cgi?id=33841
1784
1785         Return early SVGUseElement::instanceForShadowTreeElement if m_targetElementInstance is zero.
1786         This only happens if the SVGUseElement has just been removed from the document and EventHandler
1787         tries to dispatch a mouseout event to the corresponding SVGElementInstance. This is not testable
1788         using DRT unfortunately, so we have to add another manual testcase for that.
1789
1790         Tests: manual-tests/use-crash-on-mouse-hover.svg
1791
1792         * manual-tests/svg-crash-hovering-use.svg: Added.
1793         * svg/SVGUseElement.cpp:
1794         (WebCore::SVGUseElement::instanceForShadowTreeElement): Add ASSERT(!inDocument()) when returning 0 here if m_targetElementInstance is 0.
1795
1796 2010-01-20  Ilya Tikhonovsky  <loislo@chromium.org>
1797
1798         Reviewed by Pavel Feldman.
1799
1800         Timeline reset button doesn't clean timeline if the panel is scrolled down.
1801         The overview pane also stay dirty after reset.
1802         https://bugs.webkit.org/show_bug.cgi?id=33829
1803
1804         * inspector/front-end/TimelineGrid.js:
1805         (WebInspector.TimelineGrid.prototype.updateDividers):
1806         * inspector/front-end/TimelineOverviewPane.js:
1807         (WebInspector.TimelineOverviewPane.prototype.reset):
1808         * inspector/front-end/TimelinePanel.js:
1809         (WebInspector.TimelinePanel.prototype.reset):
1810         (WebInspector.TimelinePanel.prototype._refreshRecords):
1811
1812 2010-01-20  Alexey Proskuryakov  <ap@apple.com>
1813
1814         Reviewed by Sam Weinig.
1815
1816         https://bugs.webkit.org/show_bug.cgi?id=33930
1817         Crash in JSDOMWindowBase::crossDomainAccessErrorMessage when accessing a detached sandboxed frame
1818
1819         Test: http/tests/security/detached-sandboxed-frame-access.html
1820
1821         * bindings/js/JSDOMWindowBase.cpp: (WebCore::JSDOMWindowBase::crossDomainAccessErrorMessage):
1822         Changed the way we discover the url to match what the actual check does. Both old and new
1823         code correctly fetch the URL of the current window displayed in frame, but going via
1824         DOMWindowShell avoids crashing on null DOMWindow::m_frame pointer.
1825
1826 2010-01-20  Vitaly Repeshko  <vitalyr@chromium.org>
1827
1828         Reviewed by Pavel Feldman.
1829
1830         [V8] Support SerializedScriptValue.
1831         https://bugs.webkit.org/show_bug.cgi?id=32920
1832         http://crbug.com/30620
1833
1834         Initial implementation of SerializedScriptValue which is used to
1835         to create a serialized representation of JavaScript objects.  This
1836         representation is needed for structured clones and worker messages.
1837
1838         * WebCore.gypi: Added SerializedScriptValue.cpp.
1839         * bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
1840         * bindings/v8/SerializedScriptValue.cpp: Added.
1841         (WebCore::):
1842         (WebCore::ZigZag::encode):
1843         (WebCore::ZigZag::decode):
1844         (WebCore::Writer::Writer):
1845         (WebCore::Writer::writeUndefined):
1846         (WebCore::Writer::writeNull):
1847         (WebCore::Writer::writeTrue):
1848         (WebCore::Writer::writeFalse):
1849         (WebCore::Writer::writeString):
1850         (WebCore::Writer::writeInt32):
1851         (WebCore::Writer::writeNumber):
1852         (WebCore::Writer::endComposite):
1853         (WebCore::Writer::data):
1854         (WebCore::Writer::doWriteUint32):
1855         (WebCore::Writer::append):
1856         (WebCore::Writer::ensureSpace):
1857         (WebCore::Writer::fillHole):
1858         (WebCore::Writer::charAt):
1859         (WebCore::Serializer::Serializer):
1860         (WebCore::Serializer::serialize):
1861         (WebCore::Serializer::StateBase::~StateBase):
1862         (WebCore::Serializer::StateBase::nextState):
1863         (WebCore::Serializer::StateBase::setNextState):
1864         (WebCore::Serializer::StateBase::composite):
1865         (WebCore::Serializer::StateBase::StateBase):
1866         (WebCore::Serializer::State::composite):
1867         (WebCore::Serializer::State::tag):
1868         (WebCore::Serializer::State::State):
1869         (WebCore::Serializer::StackCleaner::StackCleaner):
1870         (WebCore::Serializer::StackCleaner::~StackCleaner):
1871         (WebCore::Serializer::ArrayState::ArrayState):
1872         (WebCore::Serializer::ArrayState::done):
1873         (WebCore::Serializer::ArrayState::advance):
1874         (WebCore::Serializer::ObjectState::ObjectState):
1875         (WebCore::Serializer::ObjectState::done):
1876         (WebCore::Serializer::ObjectState::advance):
1877         (WebCore::Serializer::ObjectState::nextProperty):
1878         (WebCore::Serializer::doSerialize):
1879         (WebCore::Serializer::push):
1880         (WebCore::Serializer::top):
1881         (WebCore::Serializer::pop):
1882         (WebCore::Serializer::checkComposite):
1883         (WebCore::Reader::Reader):
1884         (WebCore::Reader::isEof):
1885         (WebCore::Reader::read):
1886         (WebCore::Reader::readTag):
1887         (WebCore::Reader::readString):
1888         (WebCore::Reader::readInt32):
1889         (WebCore::Reader::readNumber):
1890         (WebCore::Reader::doReadUint32):
1891         (WebCore::Deserializer::Deserializer):
1892         (WebCore::Deserializer::deserialize):
1893         (WebCore::Deserializer::doDeserialize):
1894         (WebCore::Deserializer::push):
1895         (WebCore::Deserializer::pop):
1896         (WebCore::Deserializer::stackDepth):
1897         (WebCore::Deserializer::element):
1898         (WebCore::SerializedScriptValue::SerializedScriptValue):
1899         (WebCore::SerializedScriptValue::deserialize):
1900         * bindings/v8/SerializedScriptValue.h:
1901         (WebCore::SerializedScriptValue::create):
1902         (WebCore::SerializedScriptValue::createFromWire):
1903         (WebCore::SerializedScriptValue::release):
1904         (WebCore::SerializedScriptValue::toWireString):
1905
1906         Updated uses of SerializedScriptValue:
1907         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1908         (WebCore::V8DOMWindow::postMessageCallback):
1909         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
1910         (WebCore::V8DedicatedWorkerContext::postMessageCallback):
1911         * bindings/v8/custom/V8HistoryCustom.cpp:
1912         (WebCore::V8History::pushStateCallback):
1913         (WebCore::V8History::replaceStateCallback):
1914         * bindings/v8/custom/V8MessageEventCustom.cpp:
1915         (WebCore::V8MessageEvent::initMessageEventCallback):
1916         * bindings/v8/custom/V8MessagePortCustom.cpp:
1917         (WebCore::V8MessagePort::postMessageCallback):
1918         * bindings/v8/custom/V8WorkerCustom.cpp:
1919         (WebCore::V8Worker::postMessageCallback):
1920
1921 2010-01-20  Steve Falkenburg  <sfalken@apple.com>
1922
1923         Reviewed by Sam Weinig.
1924
1925         Fix crash in geolocation when observers change during iteration.
1926
1927         * page/GeolocationController.cpp:
1928         (WebCore::GeolocationController::positionChanged): Copy observers to vector while iterating.
1929         (WebCore::GeolocationController::errorOccurred): Copy observers to vector while iterating.
1930
1931 2010-01-19  Oliver Hunt  <oliver@apple.com>
1932
1933         Reviewed by Dan Bernstein.
1934
1935         Insufficient repaint issues with html embedded in foreignObject
1936         https://bugs.webkit.org/show_bug.cgi?id=16318
1937
1938         Partial fix for selection repaint in foreignObject, basically we
1939         just need to make sure foreignObject correctly applies the svg
1940         transform to the selection rect.
1941
1942         * rendering/RenderBlock.cpp:
1943         (WebCore::RenderBlock::paintSelection):
1944         * rendering/RenderForeignObject.cpp:
1945         (WebCore::RenderForeignObject::mapLocalToContainer):
1946         * rendering/RenderForeignObject.h:
1947
1948 2010-01-20  Gavin Barraclough  <barraclough@apple.com>
1949
1950         Reviewed by NOBODY.
1951
1952         <rdar://problem/7557695> REGRESSION(r53445-r53449): Many new memory leaks (33867)
1953
1954         Revert r53447, since this caused leaks.
1955
1956         * WebCore.base.exp:
1957         * platform/text/StringImpl.cpp:
1958         (WebCore::StringImpl::operator new):
1959         (WebCore::StringImpl::operator delete):
1960         (WebCore::StringImpl::StringImpl):
1961         (WebCore::StringImpl::~StringImpl):
1962         (WebCore::StringImpl::create):
1963         (WebCore::StringImpl::createWithTerminatingNullCharacter):
1964         (WebCore::StringImpl::crossThreadString):
1965         (WebCore::StringImpl::sharedBuffer):
1966         * platform/text/StringImpl.h:
1967         (WebCore::StringImpl::hasTerminatingNullCharacter):
1968         (WebCore::StringImpl::inTable):
1969         (WebCore::StringImpl::setInTable):
1970         (WebCore::StringImpl::):
1971         * storage/OriginUsageRecord.cpp:
1972         (WebCore::OriginUsageRecord::addDatabase):
1973         (WebCore::OriginUsageRecord::markDatabase):
1974
1975 2010-01-20  Jian Li  <jianli@chromium.org>
1976
1977         Reviewed by Dmitry Titov.
1978
1979         Implement File and Blob interfaces as defined in File API spec.
1980         https://bugs.webkit.org/show_bug.cgi?id=32912
1981
1982         * Android.derived.jscbindings.mk:
1983         * Android.derived.v8bindings.mk:
1984         * Android.mk:
1985         * DerivedSources.cpp:
1986         * DerivedSources.make:
1987         * GNUmakefile.am:
1988         * WebCore.gypi:
1989         * WebCore.pri:
1990         * WebCore.pro:
1991         * WebCore.vcproj/WebCore.vcproj:
1992         * WebCore.xcodeproj/project.pbxproj:
1993         * WebCoreSources.bkl:
1994         * bindings/js/JSXMLHttpRequestCustom.cpp:
1995         (WebCore::JSXMLHttpRequest::send):
1996         * bindings/objc/DOMHTML.h:
1997         * bindings/objc/PublicDOMInterfaces.h:
1998         * bindings/scripts/CodeGeneratorJS.pm:
1999         * bindings/scripts/CodeGeneratorObjC.pm:
2000         * bindings/scripts/CodeGeneratorV8.pm:
2001         * bindings/v8/DOMObjectsInclude.h:
2002         * bindings/v8/DerivedSourcesAllInOne.cpp:
2003         * bindings/v8/V8Binding.h:
2004         (WebCore::toInt64):
2005         * bindings/v8/V8Index.cpp:
2006         * bindings/v8/V8Index.h:
2007         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2008         (WebCore::V8XMLHttpRequest::sendCallback):
2009         * html/File.cpp:
2010         (WebCore::File::File):
2011         * html/File.h:
2012         (WebCore::File::create):
2013         (WebCore::File::name):
2014         (WebCore::File::fileName):
2015         (WebCore::File::fileSize):
2016         * html/File.idl:
2017         * xml/XMLHttpRequest.cpp:
2018         (WebCore::XMLHttpRequest::send):
2019         * xml/XMLHttpRequest.h:
2020
2021 2010-01-20  Chris Fleizach  <cfleizach@apple.com>
2022
2023         Reviewed by Beth Dakin.
2024
2025         WAI-ARIA popup buttons spoken as simply 'button'
2026         https://bugs.webkit.org/show_bug.cgi?id=33922
2027
2028         Test: platform/mac/accessibility/aria-popup.html
2029
2030         * accessibility/AccessibilityRenderObject.cpp:
2031         (WebCore::AccessibilityRenderObject::actionElement):
2032         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
2033         * html/HTMLAttributeNames.in:
2034
2035 2010-01-19  David Levin  <levin@chromium.org>
2036
2037         Reviewed by Oliver Hunt.
2038
2039         CrossThreadCopier needs to support ThreadSafeShared better.
2040         https://bugs.webkit.org/show_bug.cgi?id=33698
2041
2042         Now the copier is able to handle types that derive from ThreadSafeShared.
2043
2044         No change functionality so no new tests.
2045
2046         * loader/WorkerThreadableLoader.cpp:
2047         (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel): Remove unnecessary cast.
2048         (WebCore::WorkerThreadableLoader::MainThreadBridge::clearClientWrapper): Ditto.
2049         * loader/WorkerThreadableLoader.h:
2050         Change to use the derived class instead of the ThreadSafeShared version.
2051         * platform/CrossThreadCopier.cpp:
2052         Add the new template parameter throughout the classes and adjust the class that 
2053         handles ThreadSafeShared to allow for derived types.
2054         * platform/CrossThreadCopier.h:
2055         Add another template parameter to be able to detect classes that derive 
2056         from ThreadSafeShared.
2057         * websockets/WorkerThreadableWebSocketChannel.cpp:
2058         Removed unnecessary casts and changed a type to use the derived class instead of
2059         the ThreadSafeShared version.
2060         (WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
2061         (WebCore::workerContextDidSend):
2062         (WebCore::workerContextDidGetBufferedAmount):
2063         (WebCore::workerContextDidConnect):
2064         (WebCore::workerContextDidReceiveMessage):
2065         (WebCore::workerContextDidClose):
2066         (WebCore::WorkerThreadableWebSocketChannel::Bridge::setWebSocketChannel):
2067         (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadCreateWebSocketChannel):
2068         (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
2069         (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
2070         (WebCore::WorkerThreadableWebSocketChannel::Bridge::clearClientWrapper):
2071         (WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted):
2072         (WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
2073         * websockets/WorkerThreadableWebSocketChannel.h:
2074         (WebCore::WorkerThreadableWebSocketChannel::Peer::create): Changed a type to use the
2075         derived class instead of the ThreadSafeShared version.
2076
2077 2010-01-20  Jon Honeycutt  <jhoneycutt@apple.com>
2078
2079         <rdar://problem/7086565> Crash in WebCore::PlugInView::dispatchNPEvent
2080
2081         Reviewed by Sam Weinig.
2082
2083         * plugins/PluginView.cpp:
2084         (WebCore::PluginView::handleEvent):
2085         Ref the PluginView to protect it from deletion while calling into the
2086         plug-in.
2087
2088 2010-01-20  Jon Honeycutt  <jhoneycutt@apple.com>
2089
2090         MSAA: accSelect() is not implemented
2091
2092         https://bugs.webkit.org/show_bug.cgi?id=33918
2093         <rdar://problem/7436861>
2094
2095         Reviewed by Darin Adler.
2096
2097         Test: platform/win/accessibility/selection-and-focus.html
2098
2099         * accessibility/AccessibilityMenuListOption.cpp:
2100         (WebCore::AccessibilityMenuListOption::setSelected):
2101         Return early if the object is not selectable.
2102
2103 2010-01-20  Nikolas Zimmermann  <nzimmermann@rim.com>
2104
2105         Not reviewed. Fix chromium build, introduced a copy&paste error.
2106
2107         * bindings/v8/ScriptEventListener.cpp:
2108         (WebCore::createAttributeEventListener):
2109
2110 2010-01-20  Dan Bernstein  <mitz@apple.com>
2111
2112         Reviewed by Darin Adler.
2113
2114         <rdar://problem/6579204> Exception thrown when opening a <select> pop-up that
2115         uses a web font
2116         https://bugs.webkit.org/show_bug.cgi?id=23911
2117
2118         * platform/mac/PopupMenuMac.mm:
2119         (WebCore::PopupMenu::populate): Use the (bold) system font if an NSFont cannot
2120         be obtained.
2121
2122 2010-01-19  Nikolas Zimmermann  <nzimmermann@rim.com>
2123
2124         Reviewed by Alexey Proskuryakov. 
2125
2126         svg/custom/use-instanceRoot-event-bubbling.xhtml is flakey
2127         https://bugs.webkit.org/show_bug.cgi?id=33835
2128
2129         mouseEvent fires mutiple times in svg/custom/use-instanceRoot-as-event-target.xhtml
2130         https://bugs.webkit.org/show_bug.cgi?id=32519
2131
2132         Test: svg/custom/use-instanceRoot-event-listener-liveness.xhtml
2133
2134         Stabilize <use> scripting support - use tests are reliable now (tested using --repeach-each 50 --random -p)
2135
2136         Do not reclone trees anymore because of event listener changes, instead keep correspondingElement & shadowTreeElement
2137         synchronized for each SVGElementInstance - any mutations on any event listeners are live, and take immediate effect,
2138         w/o having to rely on a reclone - this was the root of several race conditions making the <use> tests flakey.
2139
2140         Fix SVGUseElement::instanceRoot() to force shadow tree creation, even if it was not attached so far - we can't wait
2141         for finishedParsing() to be called which would recalculate the document style and attach the shadow tree as result.
2142         This is now matching Operas behaviour.
2143
2144         Optimize createAttributeEventListener() to not create event listeners if the supplied Attribute isNull() - otherwhise
2145         DOM calls like removeAttribute("onclick") cause a temporary JSEventListener to be created, added to the event listener
2146         cache and removed afterwards.
2147
2148         * bindings/js/ScriptEventListener.cpp:
2149         (WebCore::createAttributeEventListener): Return early if the supplied attribute is null as discussed with Geoffrey.
2150         * bindings/v8/ScriptEventListener.cpp:
2151         (WebCore::createAttributeEventListener): Ditto.
2152         * dom/Node.cpp: Synchronize event listeners with all element instances, instead of marking the use elements to reclone.
2153         (WebCore::instancesForSVGElement):
2154         (WebCore::tryAddEventListener):
2155         (WebCore::Node::addEventListener): When adding a listener, get a list of element instances and add it their as well.
2156         (WebCore::tryRemoveEventListener):
2157         (WebCore::Node::removeEventListener): Ditto for removals, but with special logic for listeners created from markup (see comments)
2158         * svg/SVGElementInstance.cpp: Cleaned up, removing unncessary checks of correspondingElement() - there is an ASSERT in the ctor.
2159         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement):
2160         (WebCore::SVGElementInstance::scriptExecutionContext):
2161         (WebCore::SVGElementInstance::addEventListener):
2162         (WebCore::SVGElementInstance::removeEventListener):
2163         (WebCore::SVGElementInstance::removeAllEventListeners):
2164         (WebCore::SVGElementInstance::eventTargetData):
2165         (WebCore::SVGElementInstance::ensureEventTargetData):
2166         * svg/SVGUseElement.cpp: Call document()->updateLayoutIgnorePendingStylesheets() to force shadow tree creation, just like CSSStyleDecl works.
2167         (WebCore::SVGUseElement::instanceRoot):
2168
2169 2010-01-20  Dmitry Titov  <dimich@chromium.org>
2170
2171         Reviewed by Darin Adler.
2172
2173         Move local utility class DocumentWeakReference entirely from Document.h into Document.cpp
2174         since it is only used there. It is a followup for http://trac.webkit.org/changeset/53345.
2175
2176         No new tests since no change in functionality.
2177
2178         * dom/Document.cpp: Move definitions of the methods into declaration of the class, remove 'inline'.
2179         * dom/Document.h: Replace DocumentWeakReference declaration with a forward declaration.
2180
2181 2010-01-20  Oliver Hunt  <oliver@apple.com>
2182
2183         No review, rolling out r53561.
2184         http://trac.webkit.org/changeset/53561
2185         https://bugs.webkit.org/show_bug.cgi?id=16318
2186
2187         broke selection repaint for transformed text in html
2188
2189         * rendering/RenderBlock.cpp:
2190         (WebCore::RenderBlock::paintSelection):
2191         * rendering/RenderForeignObject.cpp:
2192         * rendering/RenderForeignObject.h:
2193
2194 2010-01-19  Oliver Hunt  <oliver@apple.com>
2195
2196         Reviewed by Beth Dakin.
2197
2198         Insufficient repaint issues with html embedded in foreignObject
2199         https://bugs.webkit.org/show_bug.cgi?id=16318
2200
2201         Partial fix for selection repaint in foreignObject, basically we
2202         just need to make sure foreignObject correctly applies the svg
2203         transform to the selection rect.
2204
2205         * rendering/RenderBlock.cpp:
2206         (WebCore::RenderBlock::paintSelection):
2207         * rendering/RenderForeignObject.cpp:
2208         (WebCore::RenderForeignObject::mapLocalToContainer):
2209         * rendering/RenderForeignObject.h:
2210
2211 2010-01-20  Kevin Ollivier  <kevino@theolliviers.com>
2212
2213         Build fix for !ENABLE(SVG).
2214
2215         * rendering/TrailingFloatsRootInlineBox.h:
2216         (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox):
2217
2218 2010-01-20  David Levin  <levin@chromium.org>
2219
2220         No review, rolling out r53552.
2221         http://trac.webkit.org/changeset/53552
2222         https://bugs.webkit.org/show_bug.cgi?id=32554
2223
2224         Caused lots of fast/profile test failures.
2225
2226         * bindings/js/JSInjectedScriptHostCustom.cpp:
2227         (WebCore::JSInjectedScriptHost::databaseForId):
2228         (WebCore::JSInjectedScriptHost::inspectedWindow):
2229         (WebCore::JSInjectedScriptHost::wrapCallback):
2230         (WebCore::JSInjectedScriptHost::currentCallFrame):
2231         (WebCore::JSInjectedScriptHost::nodeForId):
2232         (WebCore::JSInjectedScriptHost::wrapObject):
2233         (WebCore::JSInjectedScriptHost::unwrapObject):
2234         (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
2235         (WebCore::JSInjectedScriptHost::selectDatabase):
2236         (WebCore::JSInjectedScriptHost::selectDOMStorage):
2237         * bindings/js/ScriptCallStack.h:
2238         (WebCore::ScriptCallStack::state):
2239         * bindings/js/ScriptController.cpp:
2240         * bindings/js/ScriptController.h:
2241         * bindings/js/ScriptObject.h:
2242         * bindings/js/ScriptValue.cpp:
2243         (WebCore::ScriptValue::quarantineValue):
2244         * bindings/js/ScriptValue.h:
2245         * bindings/v8/ScriptObject.h:
2246         * bindings/v8/ScriptValue.h:
2247         (WebCore::ScriptValue::quarantineValue):
2248         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2249         (WebCore::V8InjectedScriptHost::inspectedWindowCallback):
2250         (WebCore::V8InjectedScriptHost::wrapCallbackCallback):
2251         (WebCore::V8InjectedScriptHost::wrapObjectCallback):
2252         (WebCore::V8InjectedScriptHost::unwrapObjectCallback):
2253         * inspector/ConsoleMessage.cpp:
2254         (WebCore::ConsoleMessage::ConsoleMessage):
2255         (WebCore::ConsoleMessage::addToConsole):
2256         (WebCore::ConsoleMessage::isEqual):
2257         * inspector/ConsoleMessage.h:
2258         * inspector/InjectedScriptHost.cpp:
2259         (WebCore::InjectedScriptHost::wrapObject):
2260         (WebCore::InjectedScriptHost::unwrapObject):
2261         * inspector/InjectedScriptHost.h:
2262         * inspector/InjectedScriptHost.idl:
2263         * inspector/InspectorBackend.cpp:
2264         (WebCore::InspectorBackend::dispatchOnInjectedScript):
2265         (WebCore::InspectorBackend::releaseWrapperObjectGroup):
2266         * inspector/InspectorBackend.h:
2267         * inspector/InspectorBackend.idl:
2268         * inspector/InspectorController.cpp:
2269         (WebCore::InspectorController::InspectorController):
2270         (WebCore::InspectorController::clearConsoleMessages):
2271         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
2272         (WebCore::InspectorController::windowScriptObjectAvailable):
2273         (WebCore::InspectorController::scriptObjectReady):
2274         (WebCore::InspectorController::setFrontendProxyObject):
2275         (WebCore::InspectorController::close):
2276         (WebCore::InspectorController::resetScriptObjects):
2277         (WebCore::InspectorController::didPause):
2278         (WebCore::InspectorController::wrapObject):
2279         (WebCore::InspectorController::unwrapObject):
2280         (WebCore::InspectorController::releaseWrapperObjectGroup):
2281         (WebCore::InspectorController::resetInjectedScript):
2282         (WebCore::InspectorController::deleteCookie):
2283         * inspector/InspectorController.h:
2284         * inspector/InspectorFrontend.cpp:
2285         (WebCore::InspectorFrontend::addConsoleMessage):
2286         (WebCore::InspectorFrontend::pausedScript):
2287         * inspector/InspectorFrontend.h:
2288         * inspector/front-end/AuditsPanel.js:
2289         (WebInspector.AuditsPanel.prototype._reloadResources):
2290         * inspector/front-end/ConsoleView.js:
2291         (WebInspector.ConsoleView.prototype.requestClearMessages):
2292         (WebInspector.ConsoleView.prototype.completions):
2293         (WebInspector.ConsoleView.prototype.doEvalInWindow):
2294         (WebInspector.ConsoleView.prototype._formatnode):
2295         (WebInspector.ConsoleView.prototype._formatarray):
2296         * inspector/front-end/DOMAgent.js:
2297         (WebInspector.DOMNode):
2298         (WebInspector.CSSStyleDeclaration):
2299         (WebInspector.CSSStyleDeclaration.parseRule):
2300         * inspector/front-end/Database.js:
2301         (WebInspector.Database.prototype.executeSql):
2302         * inspector/front-end/ElementsPanel.js:
2303         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
2304         (WebInspector.ElementsPanel.prototype.setDocument):
2305         (WebInspector.ElementsPanel.prototype.searchCanceled):
2306         (WebInspector.ElementsPanel.prototype.performSearch):
2307         * inspector/front-end/ElementsTreeOutline.js:
2308         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
2309         * inspector/front-end/EventListenersSidebarPane.js:
2310         ():
2311         * inspector/front-end/InjectedScript.js:
2312         (InjectedScript.dispatch):
2313         (InjectedScript.toggleStyleEnabled):
2314         (InjectedScript._serializeRule):
2315         (InjectedScript._serializeStyle):
2316         (InjectedScript.getProperties):
2317         (InjectedScript.setPropertyValue):
2318         (InjectedScript._evaluateAndWrap):
2319         (InjectedScript.getCallFrames):
2320         (InjectedScript._inspectObject):
2321         (InjectedScript._ensureCommandLineAPIInstalled):
2322         (InjectedScript._resolveObject):
2323         (InjectedScript._window):
2324         (InjectedScript._objectForId):
2325         (InjectedScript.createProxyObject):
2326         (InjectedScript.executeSql):
2327         (InjectedScript.executeSql.errorCallback):
2328         (InjectedScript.executeSql.queryTransaction):
2329         (Object.type):
2330         (String.prototype.escapeCharacters):
2331         * inspector/front-end/InjectedScriptAccess.js:
2332         (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
2333         (InjectedScriptAccess._installHandler):
2334         * inspector/front-end/MetricsSidebarPane.js:
2335         (WebInspector.MetricsSidebarPane):
2336         (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
2337         (WebInspector.MetricsSidebarPane.prototype.update):
2338         (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
2339         * inspector/front-end/ObjectPropertiesSection.js:
2340         (WebInspector.ObjectPropertiesSection.prototype.update):
2341         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
2342         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
2343         * inspector/front-end/ObjectProxy.js:
2344         (WebInspector.ObjectProxy):
2345         (WebInspector.ObjectProxy.getPropertiesAsync):
2346         * inspector/front-end/PropertiesSidebarPane.js:
2347         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
2348         (WebInspector.PropertiesSidebarPane.prototype.update):
2349         * inspector/front-end/ResourcesPanel.js:
2350         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
2351         * inspector/front-end/ScriptsPanel.js:
2352         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
2353         * inspector/front-end/StylesSidebarPane.js:
2354         (WebInspector.StylesSidebarPane.prototype.update):
2355         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
2356         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
2357         (WebInspector.StylePropertyTreeElement.prototype):
2358         * inspector/front-end/WatchExpressionsSidebarPane.js:
2359         (WebInspector.WatchExpressionsSection.prototype.update):
2360         * inspector/front-end/inspector.js:
2361         (WebInspector.loaded):
2362         (WebInspector.pausedScript):
2363         (WebInspector.addConsoleMessage):
2364         (WebInspector.log.logMessage):
2365         (WebInspector.log):
2366
2367 2010-01-20  Steve Block  <steveblock@google.com>
2368
2369         Reviewed by David Levin.
2370
2371         Renames jni_runtime.[cpp|h] to JNIBridge.[cpp|h]
2372         https://bugs.webkit.org/show_bug.cgi?id=33899
2373
2374         No new tests, refactoring only.
2375
2376         * Android.jscbindings.mk: Modified. Removes jni_runtime.cpp and adds JNIBridge.cpp
2377         * GNUmakefile.am: Modified. Removes jni_runtime.h and adds JNIBridge.h
2378         * WebCore.xcodeproj/project.pbxproj: Modified. Removes jni_runtime.[cpp|h] and adds JNIBridge.[cpp|h]
2379         * bridge/jni/JNIBridge.cpp: Copied from WebCore/bridge/jni/jni_runtime.cpp.
2380         * bridge/jni/JNIBridge.h: Copied from WebCore/bridge/jni/jni_runtime.h.
2381         * bridge/jni/jni_jsobject.mm: Modified. Updated to include JNIBridge.h
2382         * bridge/jni/jni_runtime.cpp: Removed.
2383         * bridge/jni/jni_runtime.h: Removed.
2384         * bridge/jni/jsc/JNIUtilityPrivate.cpp: Modified. Updated to include JNIBridge.h
2385         * bridge/jni/jsc/JavaClassJSC.cpp: Modified. Removed superfluous include
2386         * bridge/jni/jsc/JavaClassJSC.h: Modified. Updated to include JNIBridge.h
2387         * bridge/jni/jsc/JavaInstanceJSC.cpp: Modified. Updated to include JNIBridge.h
2388
2389 2010-01-20  Alexey Proskuryakov  <ap@apple.com>
2390
2391         Reviewed by Simon Fraser.
2392
2393         https://bugs.webkit.org/show_bug.cgi?id=33913
2394         Crash under Media::matchMedium in detached frame
2395
2396         Also took the opportunity to fix JS bindings for the Media object.
2397
2398         Test: fast/media/lifetime.html
2399
2400         * css/Media.h:
2401         (WebCore::Media::create): Take and store a Frame pointer, like other similar objects do.
2402         (WebCore::Media::disconnectFrame): Zero out the frame pointer (this is called from
2403         DOMWindow::clear()).
2404
2405         * css/Media.cpp:
2406         (WebCore::Media::Media): Updated to storing Frame pointer.
2407         (WebCore::Media::type): Ditto.
2408         (WebCore::Media::matchMedium): Removed null check for document element - every document has
2409         one. Also, every Frame has a document, so we only need to check for m_frame being zero.
2410
2411         * bindings/js/JSDOMWindowCustom.cpp:
2412         (WebCore::JSDOMWindow::markChildren):
2413         * page/DOMWindow.cpp:
2414         (WebCore::DOMWindow::clear):
2415         (WebCore::DOMWindow::media):
2416         * page/DOMWindow.h:
2417         (WebCore::DOMWindow::optionalMedia):
2418         Make sure there's only one Media object per window, and keep its wrapper alive.
2419
2420 2010-01-20  Steve Falkenburg  <sfalken@apple.com>
2421
2422         Reviewed by Darin Adler and Adam Roben.
2423
2424         Feature defines are difficult to maintain on Windows builds
2425         https://bugs.webkit.org/show_bug.cgi?id=33883
2426
2427         FeatureDefines.vsprops are now maintained in a way similar to
2428         Configurations/FeatureDefines.xcconfig, with the added advantage
2429         of having a single FeatureDefines file across all projects.
2430
2431         * Configurations/FeatureDefines.xcconfig: Add comments about keeping feature definitions in sync.
2432         * WebCore.vcproj/MigrateIDLAndScripts: Remove reference to file that no longer exists.
2433         * WebCore.vcproj/QTMovieWin.vcproj: Add FeatureDefines.vsprops inherited property sheet.
2434         * WebCore.vcproj/WebCore.vcproj: Add FeatureDefines.vsprops inherited property sheet.
2435         * WebCore.vcproj/WebCoreCommon.vsprops: Remove ENABLE_ preprocessor definitions.
2436         * WebCore.vcproj/WebCoreGenerated.vcproj: Added Cairo configuration for selecting proper features.
2437         * WebCore.vcproj/WebCoreMediaQT.vsprops: Remove ENABLE_VIDEO. This is picked up from FeatureDefines.vsprops.
2438         * WebCore.vcproj/build-generated-files.sh: Pick up features from FeatureDefines.vsprops or FeatureDefinesCairo.vsprops.
2439
2440 2010-01-20  Yury Semikhatsky  <yurys@chromium.org>
2441
2442         Reviewed by Pavel Feldman.
2443
2444         Inject inspector script directly into the inspected context. All the
2445         communication between the script and the frontend is serialized into
2446         JSON strings. It allows to get rid of object quarantines in Web Inspector.
2447
2448         https://bugs.webkit.org/show_bug.cgi?id=32554
2449
2450         Test: inspector/console-log-before-inspector-open.html
2451
2452         * bindings/js/JSInjectedScriptHostCustom.cpp:
2453         (WebCore::JSInjectedScriptHost::databaseForId):
2454         (WebCore::JSInjectedScriptHost::currentCallFrame):
2455         (WebCore::JSInjectedScriptHost::nodeForId):
2456         (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
2457         (WebCore::JSInjectedScriptHost::selectDatabase):
2458         (WebCore::JSInjectedScriptHost::selectDOMStorage):
2459         * bindings/js/ScriptCallStack.h:
2460         (WebCore::ScriptCallStack::state):
2461         * bindings/js/ScriptController.cpp:
2462         (WebCore::ScriptController::mainWorldScriptState):
2463         * bindings/js/ScriptController.h:
2464         * bindings/js/ScriptObject.h:
2465         (WebCore::ScriptObject::scriptState):
2466         * bindings/js/ScriptValue.cpp:
2467         * bindings/js/ScriptValue.h:
2468         * bindings/v8/ScriptObject.h:
2469         (WebCore::ScriptObject::scriptState):
2470         * bindings/v8/ScriptValue.h:
2471         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2472         * inspector/ConsoleMessage.cpp:
2473         (WebCore::ConsoleMessage::ConsoleMessage):
2474         (WebCore::ConsoleMessage::addToConsole):
2475         (WebCore::ConsoleMessage::isEqual):
2476         * inspector/ConsoleMessage.h:
2477         * inspector/InjectedScriptHost.cpp:
2478         (WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
2479         * inspector/InjectedScriptHost.h:
2480         * inspector/InjectedScriptHost.idl:
2481         * inspector/InspectorBackend.cpp:
2482         (WebCore::InspectorBackend::setInjectedScriptSource):
2483         (WebCore::InspectorBackend::dispatchOnInjectedScript):
2484         (WebCore::InspectorBackend::releaseWrapperObjectGroup):
2485         * inspector/InspectorBackend.h:
2486         * inspector/InspectorBackend.idl:
2487         * inspector/InspectorController.cpp:
2488         (WebCore::InspectorController::InspectorController):
2489         (WebCore::InspectorController::clearConsoleMessages):
2490         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
2491         (WebCore::InspectorController::windowScriptObjectAvailable):
2492         (WebCore::InspectorController::scriptObjectReady):
2493         (WebCore::InspectorController::setFrontendProxyObject):
2494         (WebCore::InspectorController::close):
2495         (WebCore::InspectorController::resetScriptObjects):
2496         (WebCore::InspectorController::didPause):
2497         (WebCore::InspectorController::injectedScriptForNodeId):
2498         * inspector/InspectorController.h:
2499         * inspector/InspectorFrontend.cpp:
2500         (WebCore::InspectorFrontend::addConsoleMessage):
2501         (WebCore::InspectorFrontend::pausedScript):
2502         * inspector/InspectorFrontend.h:
2503         * inspector/front-end/AuditsPanel.js:
2504         (WebInspector.AuditsPanel.prototype._reloadResources):
2505         * inspector/front-end/ConsoleView.js:
2506         (WebInspector.ConsoleView.prototype.requestClearMessages):
2507         (WebInspector.ConsoleView.prototype.doEvalInWindow):
2508         * inspector/front-end/DOMAgent.js:
2509         (WebInspector.DOMNode):
2510         (WebInspector.CSSStyleDeclaration):
2511         (WebInspector.CSSStyleDeclaration.parseRule):
2512         * inspector/front-end/Database.js:
2513         (WebInspector.Database.prototype.executeSql):
2514         * inspector/front-end/ElementsPanel.js:
2515         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
2516         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
2517         (WebInspector.ElementsPanel.prototype.setDocument):
2518         (WebInspector.ElementsPanel.prototype.searchCanceled):
2519         (WebInspector.ElementsPanel.prototype.performSearch):
2520         * inspector/front-end/ElementsTreeOutline.js:
2521         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
2522         * inspector/front-end/EventListenersSidebarPane.js:
2523         ():
2524         * inspector/front-end/InjectedScript.js:
2525         (injectedScriptConstructor):
2526         (injectedScriptConstructor.):
2527         * inspector/front-end/InjectedScriptAccess.js:
2528         (InjectedScriptAccess):
2529         (InjectedScriptAccess.getDefault):
2530         (get InjectedScriptAccess):
2531         (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
2532         (InjectedScriptAccess._installHandler):
2533         * inspector/front-end/MetricsSidebarPane.js:
2534         (WebInspector.MetricsSidebarPane):
2535         (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
2536         * inspector/front-end/ObjectPropertiesSection.js:
2537         * inspector/front-end/ObjectProxy.js:
2538         (WebInspector.ObjectProxy):
2539         * inspector/front-end/PropertiesSidebarPane.js:
2540         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
2541         * inspector/front-end/ResourcesPanel.js:
2542         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
2543         * inspector/front-end/ScriptsPanel.js:
2544         * inspector/front-end/StylesSidebarPane.js:
2545         (WebInspector.StylePropertyTreeElement.prototype):
2546         * inspector/front-end/WatchExpressionsSidebarPane.js:
2547         (WebInspector.WatchExpressionsSection.prototype.update):
2548         * inspector/front-end/inspector.js:
2549         (WebInspector.loaded):
2550         (WebInspector.pausedScript):
2551         (WebInspector.addConsoleMessage):
2552         (WebInspector.log.logMessage):
2553         (WebInspector.log):
2554
2555 2010-01-20  Kent Tamura  <tkent@chromium.org>
2556
2557         Reviewed by Darin Adler.
2558
2559         HTMLInputElement::valueAsDate setter support for type=time.
2560         https://bugs.webkit.org/show_bug.cgi?id=33825
2561
2562         Introduce ISODateTime::setMillisecondsSinceMidnight() and add a
2563         SecondFormat parameter to ISODateTime::toString(). The main code
2564         logic for type=time is implemented in
2565         setMillisecondsSinceMidnightInternal() and toStringForTime()
2566         because the logic is going to be used for other types.
2567
2568         * html/HTMLInputElement.cpp:
2569         (WebCore::HTMLInputElement::setValueAsDate):
2570         * html/ISODateTime.cpp:
2571         (WebCore::positiveFmod):
2572         (WebCore::ISODateTime::setMillisecondsSinceMidnightInternal):
2573         (WebCore::ISODateTime::setMillisecondsSinceMidnight):
2574         (WebCore::ISODateTime::toStringForTime):
2575         (WebCore::ISODateTime::toString):
2576         * html/ISODateTime.h:
2577         (WebCore::ISODateTime::):
2578
2579 2010-01-20  Csaba Osztrogonác  <ossy@webkit.org>
2580
2581         [Qt] Unreviewed buildfix for r53547.
2582
2583         * WebCore.pri:
2584
2585 2010-01-20  Ben Murdoch  <benm@google.com>
2586
2587         Reviewed by Simon Hausmann.
2588
2589         The touchcancel event is not supported.
2590         https://bugs.webkit.org/show_bug.cgi?id=33598
2591
2592         This change adds support for the touchcancel event in WebCore and adds a test.
2593
2594         Test: fast/events/touch/send-oncancel-event.html
2595
2596         * bindings/js/ScriptController.cpp:
2597         (WebCore::ScriptController::processingUserGestureEvent): Considers touchcancel with the other touch events when working out if the event is a user gesture.
2598         * dom/Document.cpp:
2599         (WebCore::Document::addListenerTypeIfNeeded): Adds a check to consider ontouchcancel a touch event listener.
2600         * dom/Document.h: Add the touchcancel attribute event listener.
2601         * dom/Document.idl: ditto.
2602         * dom/Element.h: ditto.
2603         * dom/Element.idl: ditto.
2604         * dom/EventNames.h: Adds touchcancel as an event name.
2605         * html/HTMLAttributeNames.in:Adds touchcancel as an HTML attribute name.
2606         * html/HTMLElement.cpp:
2607         (WebCore::HTMLElement::parseMappedAttribute): Parses the ontouchcancel attribute.
2608         * page/DOMWindow.h: Adds the touchcancel attribute event listener.
2609         * page/DOMWindow.idl: ditto.
2610         * page/EventHandler.cpp:
2611         (WebCore::EventHandler::handleTouchEvent): Add code to detect and dispatch touchcancel events.
2612         * platform/PlatformTouchEvent.h:
2613         (WebCore::): Add TouchCancel as a touch event type.
2614         * platform/PlatformTouchPoint.h:
2615         (WebCore::PlatformTouchPoint::): Add TouchCanceled as a touch point state.
2616
2617 2010-01-20  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2618
2619         Reviewed by Simon Hausmann.
2620
2621         [Qt] Make extraCompilers for generated sources depend on their scripts
2622
2623         * DerivedSources.pro:
2624         * WebCore.pri:
2625
2626 2010-01-20  Kent Tamura  <tkent@chromium.org>
2627
2628         Reviewed by Adam Barth.
2629
2630         [Chromium][V8] Fix null pointer dereference in V8Proxy::retrieve().
2631         https://bugs.webkit.org/show_bug.cgi?id=33886
2632
2633         This is equivalent to r53433, and fix a crash by
2634         LayoutTests/http/tests/appcache/destroyed-iframe.html.
2635
2636         * bindings/v8/V8Proxy.cpp:
2637         (WebCore::V8Proxy::retrieve): Check if context is null.
2638
2639 2010-01-20  Alexander Pavlov  <apavlov@chromium.org>
2640
2641         Reviewed by Timothy Hatcher.
2642
2643         Optimize resize event handling for hidden views
2644         https://bugs.webkit.org/show_bug.cgi?id=33803
2645
2646         * inspector/front-end/AbstractTimelinePanel.js:
2647         (WebInspector.AbstractTimelinePanel.prototype.resize):
2648         (WebInspector.AbstractTimelinePanel.prototype.updateMainViewWidth):
2649         * inspector/front-end/AuditsPanel.js:
2650         * inspector/front-end/Panel.js:
2651         (WebInspector.Panel.prototype.updateSidebarWidth):
2652         (WebInspector.Panel.prototype.resize):
2653         * inspector/front-end/PanelEnablerView.js:
2654         (WebInspector.PanelEnablerView):
2655         (WebInspector.PanelEnablerView.prototype.show):
2656         (WebInspector.PanelEnablerView.prototype.resize):
2657         * inspector/front-end/ProfilesPanel.js:
2658         (WebInspector.ProfilesPanel.prototype.show):
2659         (WebInspector.ProfilesPanel.prototype.addProfileHeader):
2660         (WebInspector.ProfilesPanel.prototype.showProfile):
2661         (WebInspector.ProfilesPanel.prototype.showView):
2662         (WebInspector.ProfilesPanel.prototype.closeVisibleView):
2663         (WebInspector.ProfilesPanel.prototype._updateInterface):
2664         (WebInspector.ProfilesPanel.prototype.updateMainViewWidth):
2665         * inspector/front-end/ResourcesPanel.js:
2666         (WebInspector.ResourcesPanel.prototype.show):
2667         (WebInspector.ResourcesPanel.prototype.get visibleView):
2668         (WebInspector.ResourcesPanel.prototype.updateMainViewWidth):
2669         * inspector/front-end/Settings.js:
2670         * inspector/front-end/StoragePanel.js:
2671         (WebInspector.StoragePanel.prototype.updateMainViewWidth):
2672         * inspector/front-end/WelcomeView.js:
2673         (WebInspector.WelcomeView):
2674         (WebInspector.WelcomeView.prototype.show):
2675         (WebInspector.WelcomeView.prototype.resize):
2676         * inspector/front-end/inspector.css:
2677         * inspector/front-end/inspector.js:
2678         (WebInspector.windowResize):
2679
2680 2010-01-20  Steve Block  <steveblock@google.com>
2681
2682         Reviewed by David Levin.
2683
2684         Fixes style in WebCore/bridge/Bridge
2685         https://bugs.webkit.org/show_bug.cgi?id=33839
2686
2687         No new tests, style fixes only.
2688
2689         * bridge/Bridge.cpp: Modified.
2690         * bridge/Bridge.h: Modified.
2691         * bridge/c/c_instance.cpp: Modified.
2692         (JSC::Bindings::CInstance::invokeMethod): Modified. Use renamed m_rootObject member
2693         (JSC::Bindings::CInstance::invokeDefaultMethod): Modified. Use renamed m_rootObject member
2694         (JSC::Bindings::CInstance::invokeConstruct): Modified. Use renamed m_rootObject member
2695         * bridge/jni/jni_runtime.cpp: Modified.
2696         (JavaArray::JavaArray): Modified. Use renamed m_rootObject member
2697         (JavaArray::rootObject): Modified. Use renamed m_rootObject member
2698         * bridge/objc/objc_instance.mm: Modified.
2699         (ObjcInstance::invokeMethod): Modified. Use renamed m_rootObject member
2700         (ObjcInstance::invokeDefaultMethod): Modified. Use renamed m_rootObject member
2701         (ObjcInstance::getValueOfUndefinedField): Modified. Use renamed m_rootObject member
2702         * bridge/objc/objc_runtime.mm: Modified.
2703         (JSC::Bindings::ObjcArray::valueAt): Modified. Use renamed m_rootObject member
2704         * bridge/qt/qt_runtime.cpp: Modified.
2705         (JSC::Bindings::::rootObject): Modified. Use renamed m_rootObject member
2706
2707 2010-01-20  Daniel Bates  <dbates@webkit.org>
2708
2709         Reviewed by Eric Seidel.
2710
2711         https://bugs.webkit.org/show_bug.cgi?id=33885
2712
2713         Fixes style errors exposed by the style bot in the patch
2714         for bug #33770. Moreover, fixes all style errors reported
2715         by check-webkit-style.
2716
2717         No functionality was changed. So, no new tests.
2718
2719         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2720         (WebCore::dataFunctionf):
2721         (WebCore::dataFunctioni):
2722         (WebCore::dataFunctionMatrix):
2723
2724 2010-01-19  Steve Block  <steveblock@google.com>
2725
2726         Reviewed by David Levin.
2727
2728         Fixes style in WebCore/bridge/JNIUtility
2729         https://bugs.webkit.org/show_bug.cgi?id=33870
2730
2731         No new tests, style fixes only.
2732
2733         * bridge/jni/JNIUtility.cpp:
2734         * bridge/jni/JNIUtility.h:
2735
2736 2010-01-20  Simon Hausmann  <simon.hausmann@nokia.com>
2737
2738         Reviewed by Tor Arne Vestbø.
2739
2740         On Linux link QtWebKit with -no-undefined to catch build breakages due to missing
2741         files in the .pro file, resulting in unresolved symbols.
2742
2743         * WebCore.pro:
2744
2745 2010-01-20  Simon Hausmann  <simon.hausmann@nokia.com>
2746
2747         Reviewed by Tor Arne Vestbø.
2748
2749         [Qt] Make it possible to link with -no-undefined.
2750
2751         * WebCore.pro: Add missing explicit dependency to libXrender due to the
2752         use of XRenderFindVisualFormat in the X11 plugin code.
2753
2754 2010-01-20  Simon Hausmann  <simon.hausmann@nokia.com>
2755
2756         Reviewed by Tor Arne Vestbø.
2757
2758         Add missing files to the build.
2759
2760         * WebCore.pro:
2761
2762 2010-01-20  Shinichiro Hamaji  <hamaji@chromium.org>
2763
2764         Reviewed by Darin Fisher.
2765
2766         [Chromium] computePageRectsForFrame seems to be unnecessary
2767         https://bugs.webkit.org/show_bug.cgi?id=33881
2768
2769         * WebCore.gypi: Removed FrameChromium.h
2770         * page/chromium/FrameChromium.cpp: Removed computePageRectsForFrame.
2771         * page/chromium/FrameChromium.h: Removed.
2772
2773 2010-01-20  Roland Steiner  <rolandsteiner@chromium.org>
2774
2775         Reviewed by Dan Bernstein.
2776
2777         Bug 33266 - WebCore::InlineFlowBox::determineSpacingForFlowBoxes ReadAV@NULL (43c64e8abbda6766e5f5edbd254c2d57)
2778         (https://bugs.webkit.org/show_bug.cgi?id=33266)
2779         
2780         Ruby did not handle malformed cases correctly when the ruby base was in
2781         block flow. Changed the code to handle all possible cases.
2782         Also, added some simplification methods to RenderBlock.
2783
2784         Tests: fast/ruby/ruby-illegal-1.html
2785                fast/ruby/ruby-illegal-2.html
2786                fast/ruby/ruby-illegal-3.html
2787                fast/ruby/ruby-illegal-4.html
2788                fast/ruby/ruby-illegal-5.html
2789                fast/ruby/ruby-illegal-6.html
2790                fast/ruby/ruby-illegal-7.html
2791                fast/ruby/ruby-illegal-combined.html
2792                fast/ruby/rubyDOM-insert-rt-block-1.html
2793                fast/ruby/rubyDOM-insert-rt-block-2.html
2794                fast/ruby/rubyDOM-insert-rt-block-3.html
2795                fast/ruby/rubyDOM-remove-rt-block-1.html
2796                fast/ruby/rubyDOM-remove-rt-block-2.html
2797                fast/ruby/rubyDOM-remove-rt-block-3.html
2798
2799         * rendering/RenderBlock.cpp:
2800         (WebCore::RenderBlock::moveAllChildrenTo): useful for anonymous block manipulation
2801         (WebCore::RenderBlock::removeChild): making use of moveAllChildrenTo
2802         * rendering/RenderBlock.h:
2803         * rendering/RenderRubyBase.cpp:
2804         (WebCore::RenderRubyBase::hasOnlyWrappedInlineChildren):
2805         (WebCore::RenderRubyBase::moveChildren):
2806         (WebCore::RenderRubyBase::moveInlineChildren):
2807         (WebCore::RenderRubyBase::moveBlockChildren):
2808         (WebCore::RenderRubyBase::mergeBlockChildren):
2809         * rendering/RenderRubyBase.h:
2810         * rendering/RenderRubyRun.cpp:
2811         (WebCore::RenderRubyRun::addChild):
2812         (WebCore::RenderRubyRun::removeChild):
2813
2814 2010-01-19  Dan Bernstein  <mitz@apple.com>
2815
2816         Build fix after r53514
2817
2818         * WebCore.base.exp: Removed threadGlobalData(), which was inlined in r53514.
2819
2820 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
2821
2822         Reviewed by Dan Bernstein.
2823
2824         Avoid calling NSEqualRects() on the garbage rect obtained
2825         by calling -frame on a null view.
2826
2827         * platform/mac/WidgetMac.mm:
2828         (WebCore::Widget::setFrameRect):
2829
2830 2010-01-19  Maciej Stachowiak  <mjs@apple.com>
2831
2832         Unreviewed build fix.
2833
2834         Remove currentWorld from the exports file again, since it is now inline.
2835
2836         * WebCore.base.exp:
2837
2838 2010-01-19  Brian Weinstein  <bweinstein@apple.com>
2839
2840         Reviewed by Tim Hatcher.
2841
2842         Part of <http://webkit.org/b/28622>.
2843         Caught exceptions still pause the debugger.
2844         
2845         Update JavaScriptDebugServer::exception to take a hasHandler parameter,
2846         so later we can differentiate between a caught and an uncaught exception.
2847         
2848         This just adds a new parameter, no behavior is changed.
2849
2850         No change in functionality, so no tests.
2851
2852         * inspector/JavaScriptDebugServer.cpp:
2853         (WebCore::JavaScriptDebugServer::exception):
2854         * inspector/JavaScriptDebugServer.h:
2855
2856 2010-01-18  Maciej Stachowiak  <mjs@apple.com>
2857
2858         Reviewed by Adam Barth.
2859
2860         Inline functions that are hot in DOM manipulation
2861         https://bugs.webkit.org/show_bug.cgi?id=33820
2862
2863         (3% speedup on Dromaeo DOM Core tests)
2864
2865         * bindings/js/JSDOMBinding.h:
2866         (WebCore::currentWorld): Inlined.
2867         (WebCore::jsString): Inlined String& overload and split off slow case.
2868         * bindings/js/JSDOMBinding.cpp:
2869         (WebCore::jsStringSlowCase): Slow case for the above.
2870         * dom/Document.h:
2871         (WebCore::Document::isHTMLDocument): Use a bit and an inline method
2872         instead of a virtual method, since this is so hot and size of Document
2873         is not a prime concern.
2874         (WebCore::Document::create): Adapt for above.
2875         (WebCore::Document::createXHTML): ditto
2876         * dom/Document.cpp:
2877         (WebCore::Document::Document): ditto
2878         * html/HTMLDocument.cpp:
2879         (WebCore::HTMLDocument::HTMLDocument): ditto
2880         * html/HTMLDocument.h: ditto
2881         * loader/PlaceholderDocument.h:
2882         (WebCore::PlaceholderDocument::PlaceholderDocument): ditto
2883         * svg/SVGDocument.cpp:
2884         (WebCore::SVGDocument::SVGDocument): ditto
2885         * dom/Element.h:
2886         (WebCore::Element::attributes): Inlined.
2887         (WebCore::Element::updateId): Inlined.
2888         * dom/Element.cpp: (Remove inlined methods.)
2889         * dom/NamedAttrMap.h:
2890         (WebCore::NamedNodeMap::getAttributeItem): Inlined and split off slow case.
2891         * dom/NamedAttrMap.cpp:
2892         (WebCore::NamedNodeMap::getAttributeItemSlowCase): Slow case for the above.
2893         * inspector/InspectorController.cpp:
2894         * inspector/InspectorController.h:
2895         (WebCore::InspectorController::didInsertDOMNode): Inlined so the fast case
2896         early exit doesn't incur a function call.
2897         (WebCore::InspectorController::didRemoveDOMNode): ditto
2898         (WebCore::InspectorController::didModifyDOMAttr): ditto
2899         * platform/ThreadGlobalData.h:
2900         (WebCore::threadGlobalData): Inlined.
2901         * platform/ThreadGlobalData.cpp: (Removed inline methods).
2902         * platform/Timer.h:
2903         (WebCore::TimerBase::isActive): Inlined.
2904         * platform/Timer.cpp: (Removed inline methods).
2905         * WebCore.xcodeproj/project.pbxproj: Install new heares.
2906         * WebCore.base.exp: Add appropriate exports.
2907
2908 2010-01-19  Jon Honeycutt  <jhoneycutt@apple.com>
2909
2910         Chromium build fix.
2911
2912         * accessibility/chromium/AccessibilityObjectChromium.cpp:
2913         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2914         Call correct function.
2915
2916 2010-01-17  Jon Honeycutt  <jhoneycutt@apple.com>
2917
2918         MSAA: The child <option> elements of a non-multiple <select> are not
2919         exposed
2920
2921         https://bugs.webkit.org/show_bug.cgi?id=33773
2922         <rdar://problem/7550556>
2923
2924         Reviewed by Alice Liu.
2925
2926         This exposes the child <option> elements in a format similar to
2927         Firefox's: the <select> element has one child, a hidden list object,
2928         and this list has as its children the <option> elements.
2929
2930         * GNUmakefile.am:
2931         * WebCore.gypi:
2932         * WebCore.vcproj/WebCore.vcproj:
2933         * WebCore.xcodeproj/project.pbxproj:
2934         Add new files to project.
2935
2936         * accessibility/AXObjectCache.cpp:
2937         (WebCore::AXObjectCache::getOrCreate):
2938         If the element is a RenderMenuList, create an AccessibilityMenuList.
2939         (WebCore::AXObjectCache::getOrCreate):
2940         Add new types to create by role value.
2941
2942         * accessibility/AccessibilityMenuList.cpp: Added.
2943         (WebCore::AccessibilityMenuList::AccessibilityMenuList):
2944         Call the base class constructor. Assert that the RenderObject passed
2945         is a RenderMenuList.
2946         (WebCore::AccessibilityMenuList::press):
2947         Show or hide the popup menu.
2948         (WebCore::AccessibilityMenuList::addChildren):
2949         Create an AccessibilityMenuListPopup. If the platform ignores its
2950         accessibility, remove it from the object cache and return early.
2951         Otherwise, set its parent object to this object, add it to our list of
2952         children, and tell it to add its children.
2953         (WebCore::AccessibilityMenuList::childrenChanged):
2954         Tell our child hidden list that its children changed.
2955         (WebCore::AccessibilityMenuList::isCollapsed):
2956         Return whether the popup menu is visible.
2957
2958         * accessibility/AccessibilityMenuList.h: Added.
2959         (WebCore::AccessibilityMenuList::create):
2960         Adopt and return a new RenderMenuList.
2961         (WebCore::AccessibilityMenuList::isMenuList):
2962         (WebCore::AccessibilityMenuList::roleValue):
2963         (WebCore::AccessibilityMenuList::accessibilityIsIgnored):
2964         (WebCore::AccessibilityMenuList::canSetFocusAttribute):
2965
2966         * accessibility/AccessibilityMenuListOption.cpp: Added.
2967         (WebCore::AccessibilityMenuListOption::AccessibilityMenuListOption):
2968         Initialize the pointer to our parent popup menu.
2969         (WebCore::AccessibilityMenuListOption::setElement):
2970         Assert that the element is an <option> element.
2971         (WebCore::AccessibilityMenuListOption::actionElement):
2972         Return our element.
2973         (WebCore::AccessibilityMenuListOption::parentObject):
2974         Return our parent popup menu.
2975         (WebCore::AccessibilityMenuListOption::isEnabled):
2976         Return true if the element itself is enabled.
2977         (WebCore::AccessibilityMenuListOption::isVisible):
2978         Return true if the popup is visible, or return true if the popup is
2979         collapsed but the element is selected.
2980         (WebCore::AccessibilityMenuListOption::isOffScreen):
2981         Return true if the object is invisible.
2982         (WebCore::AccessibilityMenuListOption::isSelected):
2983         (WebCore::AccessibilityMenuListOption::setSelected):
2984         (WebCore::AccessibilityMenuListOption::nameForMSAA):
2985         Return the <option> element's text.
2986         (WebCore::AccessibilityMenuListOption::canSetSelectedAttribute):
2987         Return true if enabled.
2988         (WebCore::AccessibilityMenuListOption::elementRect):
2989         Return the AccessibilityMenuList's rect.
2990
2991         * accessibility/AccessibilityMenuListOption.h: Added.
2992         (WebCore::AccessibilityMenuListOption::create):
2993         Adopt and return a new AccessibilityMenuListOption.
2994         (WebCore::AccessibilityMenuListOption::setParent):
2995         (WebCore::AccessibilityMenuListOption::isMenuListOption):
2996         (WebCore::AccessibilityMenuListOption::roleValue):
2997         (WebCore::AccessibilityMenuListOption::canHaveChildren):
2998         (WebCore::AccessibilityMenuListOption::size):
2999
3000         * accessibility/AccessibilityMenuListPopup.cpp: Added.
3001         (WebCore::AccessibilityMenuListPopup::AccessibilityMenuListPopup):
3002         Initialize the pointer to our parent list.
3003         (WebCore::AccessibilityMenuListPopup::isVisible):
3004         Return false; we're never considered visible.
3005         (WebCore::AccessibilityMenuListPopup::isOffScreen):
3006         Return true if the popup is collapsed.
3007         (WebCore::AccessibilityMenuListPopup::parentObject):
3008         Return our parent AccessibilityMenuList.
3009         (WebCore::AccessibilityMenuListPopup::isEnabled):
3010         Return true if our parent is enabled.
3011         (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
3012         If the element is an <option> element, create a list item for it, and
3013         set the object's element to this element.
3014         (WebCore::AccessibilityMenuListPopup::press):
3015         Call our parent's press() function to show or hide the popup menu.
3016         (WebCore::AccessibilityMenuListPopup::addChildren):
3017         Walk the select element's children, and create list items for them. Add
3018         them to our list of children.
3019         (WebCore::AccessibilityMenuListPopup::childrenChanged):
3020         If any of our children have been detached from the document, remove
3021         them from the AXObjectCache and from our child list.
3022         (WebCore::AccessibilityMenuListPopup::setMenuList):
3023
3024         * accessibility/AccessibilityMenuListPopup.h: Added.
3025         (WebCore::AccessibilityMenuListPopup::create):
3026         Adopt and return an AccessibilityMenuListPopup.
3027         (WebCore::AccessibilityMenuListPopup::isMenuListPopup):
3028         (WebCore::AccessibilityMenuListPopup::elementRect):
3029         (WebCore::AccessibilityMenuListPopup::size):
3030         (WebCore::AccessibilityMenuListPopup::roleValue):
3031
3032         * accessibility/AccessibilityObject.cpp:
3033         (WebCore::AccessibilityObject::actionVerb):
3034         Add the menuListAction and menuListPopupAction verbs.
3035
3036         * accessibility/AccessibilityObject.h:
3037         (WebCore::):
3038         Add new roles.
3039         (WebCore::AccessibilityObject::isMenuList):
3040         Stubbed.
3041         (WebCore::AccessibilityObject::isMenuListHiddenList):
3042         Stubbed.
3043         (WebCore::AccessibilityObject::isMenuListOption):
3044         Stubbed.
3045         (WebCore::AccessibilityObject::isVisible):
3046         Stubbed.
3047
3048         * accessibility/chromium/AccessibilityObjectChromium.cpp:
3049         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3050         Ignore the new object type.
3051
3052         * accessibility/gtk/AccessibilityObjectAtk.cpp:
3053         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3054         Ditto.
3055
3056         * accessibility/mac/AccessibilityObjectMac.mm:
3057         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3058         Ditto.
3059
3060         * accessibility/qt/AccessibilityObjectQt.cpp:
3061         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3062         Ditto.
3063
3064         * accessibility/win/AccessibilityObjectWin.cpp:
3065         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3066         Allow the new object types.
3067
3068         * accessibility/wx/AccessibilityObjectWx.cpp:
3069         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3070         Ignore the new object type.
3071
3072         * accessibility/win/AccessibilityObjectWin.cpp:
3073         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3074         If the object is an AccessibilityMenuListHiddenList or
3075         AccessibilityMenuListOption, include it.
3076
3077         * html/HTMLOptionElement.cpp:
3078         (WebCore::HTMLOptionElement::disabled):
3079         Call ownElementDisabled().
3080
3081         * html/HTMLOptionElement.h:
3082         (WebCore::HTMLOptionElement::ownElementDisabled):
3083         Return the base class implementation of disabled, which returns
3084         whether this <option> itself is disabled.
3085
3086         * platform/LocalizedStrings.h:
3087         Declare new localized string functions.
3088
3089         * platform/gtk/LocalizedStringsGtk.cpp:
3090         (WebCore::AXMenuListPopupActionVerb):
3091         Stubbed.
3092         (WebCore::AXMenuListActionVerb):
3093         Stubbed.
3094
3095         * platform/haiku/LocalizedStringsHaiku.cpp:
3096         (WebCore::AXMenuListPopupActionVerb):
3097         Stubbed.
3098         (WebCore::AXMenuListActionVerb):
3099         Stubbed.
3100
3101         * platform/mac/LocalizedStringsMac.mm:
3102         (WebCore::AXMenuListPopupActionVerb):
3103         Call the view factory's method.
3104         (WebCore::AXMenuListActionVerb):
3105         Ditto.
3106
3107         * platform/qt/Localizations.cpp:
3108         (WebCore::AXMenuListPopupActionVerb):
3109         Stubbed.
3110         (WebCore::AXMenuListActionVerb):
3111         Stubbed.
3112
3113         * platform/wx/LocalizedStringsWx.cpp:
3114         (WebCore::AXMenuListPopupActionVerb):
3115         Stubbed.
3116         (WebCore::AXMenuListActionVerb):
3117         Stubbed.
3118
3119 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
3120
3121         Reviewed by Dan Bernstein.
3122
3123         Support reflections on WebGL
3124         https://bugs.webkit.org/show_bug.cgi?id=33754
3125
3126         Support reflections of WebGL content, by ensuring that when the Canvas3DLayer containing the
3127         WebGL content gets displayed, we correctly copy its content to the clone layers.
3128         
3129         Test: compositing/webgl/webgl-reflection.html
3130
3131         * platform/graphics/GraphicsLayer.h:
3132         (WebCore::GraphicsLayer::didDisplay): Give the didDisplay() client method a parameter
3133         which is the layer that displayed.
3134         * platform/graphics/mac/Canvas3DLayer.mm:
3135         (-[Canvas3DLayer display]): Override -[CALayer display], and call the client didDisplay().
3136         * platform/graphics/mac/GraphicsLayerCA.h: didDisplay() takes a PlatformLayer parameter.
3137
3138         * platform/graphics/mac/GraphicsLayerCA.mm:
3139         (WebCore::GraphicsLayerCA::~GraphicsLayerCA): We need to clear the layer owner on the content
3140         layer, since we're setting it for WebGL layers now.
3141         
3142         (WebCore::GraphicsLayerCA::didDisplay): Handle didDisplay() calls for the content layer,
3143         as well as the main layer now, getting the correct layer to copy contents from, and using
3144         the correct clone map.
3145         
3146         (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): Set the layer owner for WebGL
3147         layers, because we need the didDisplay() callback.
3148
3149         * platform/graphics/mac/WebLayer.mm:
3150         (-[WebLayer display]): didDisplay() takes a layer argument.
3151         * platform/graphics/mac/WebTiledLayer.mm:
3152         (-[WebTiledLayer display]): ditto.
3153
3154 2010-01-19  Mark Rowe  <mrowe@apple.com>
3155
3156         Reviewed by Oliver Hunt.
3157
3158         <rdar://problem/7555330> <http://webkit.org/b/33770> dataFunctionMatrix leaks the array allocated by toArray
3159
3160         Rework toArray to extract elements in to a vector rather than handing out raw pointers.  This prevents
3161         callers from forgetting to free the memory, and gives them the option of using stack buffers for
3162         sufficiently small allocations.
3163
3164         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3165         (WebCore::JSWebGLRenderingContext::texSubImage2D):
3166         (WebCore::toVector):
3167         (WebCore::dataFunctionf):
3168         (WebCore::dataFunctioni):
3169         (WebCore::dataFunctionMatrix):
3170
3171 2010-01-19  Carol Szabo  <carol.szabo@nokia.com>
3172
3173         Reviewed by Darin Adler.
3174
3175         Another crazy counters bug
3176         https://bugs.webkit.org/show_bug.cgi?id=11031
3177
3178         This patch actually provides for counter updating when the style
3179         of a renderer changes.
3180
3181         Tests: fast/css/counters/counter-increment-002.html
3182                fast/css/counters/counter-reset-000.html
3183                fast/css/counters/counter-reset-002.html
3184
3185         * rendering/RenderCounter.cpp:
3186         (WebCore::RenderCounter::rendererStyleChanged):
3187         This function is added to update the counter hierarchy in 
3188         response to changes to the style of a renderer.
3189         * rendering/RenderCounter.h:
3190         * rendering/RenderObject.cpp:
3191         (WebCore::RenderObject::styleDidChange):
3192         For changes that may include the counter directives added a
3193         call to RenderCounter::rendererStyleChanged.
3194
3195 2010-01-19  Gustavo Noronha Silva  <gns@gnome.org>
3196
3197         Unreviewed. Build fixes for make distcheck - missing files.
3198
3199         * GNUmakefile.am:
3200
3201 2010-01-19  Alexey Proskuryakov  <ap@apple.com>
3202
3203         Reviewed by Oliver Hunt.
3204
3205         https://bugs.webkit.org/show_bug.cgi?id=33850
3206         Attr.childNodes does not get updated after DOM mutations
3207
3208         Test: fast/dom/Attr/child-nodes-cache.html
3209
3210         * dom/Node.cpp: (WebCore::Node::notifyLocalNodeListsAttributeChanged): If the node is an
3211         attribute, then changing it shouldn't take the shortcut that only resets a subset of caches.
3212
3213 2010-01-19  John Sullivan  <sullivan@apple.com>
3214
3215         https://bugs.webkit.org/show_bug.cgi?id=33854
3216         Would like a variant of WebHTMLRepresentation's searchForLabelsBeforeElement that returns 
3217         more info about where the result was found
3218
3219         Reviewed by Darin Adler.
3220
3221         No new tests. This just adds a couple of out parameters for the benefit of WebKit clients.
3222
3223         * WebCore.base.exp:
3224         Updated mangled signature for export.
3225
3226         * page/Frame.cpp:
3227         (WebCore::Frame::searchForLabelsAboveCell):
3228         Now fills in an out parameter with the number of characters from the start of the cell.
3229         (WebCore::Frame::searchForLabelsBeforeElement):
3230         Now fills in an out parameter with the distance as a number of characters, and another
3231         with a bool for whether the result was in a table cell above the current cell (otherwise
3232         it was found in the text before this element and after the previous element or start of form).
3233
3234         * page/Frame.h:
3235         Updated signatures.
3236
3237         * page/mac/FrameMac.mm:
3238         (WebCore::Frame::searchForNSLabelsAboveCell):
3239         Same as above. This is a parallel copy of the function using Mac-specific data structures.
3240         (WebCore::Frame::searchForLabelsBeforeElement):
3241         Ditto
3242
3243 2010-01-19  Jakob Petsovits  <jpetsovits@rim.com>
3244
3245         Reviewed by Nikolas Zimmermann.
3246
3247         [OpenVG] Add (EGL) surface/context management
3248         https://bugs.webkit.org/show_bug.cgi?id=33403
3249
3250         The foundations for a new OpenVG port.
3251
3252         OpenVG is not tied to EGL per se, EGL just happens to be
3253         the only usable backend for OpenVG state and painting
3254         at the time of writing.
3255
3256         The purpose of the SurfaceOpenVG class is to provide
3257         an EGL-independent interface for OpenVG-specific code.
3258         The EGLDisplayOpenVG class takes care of keeping track
3259         of EGL displays, surfaces and contexts. It also makes
3260         sure that all created contexts are interoperable, and
3261         that different surfaces use a single context if possible.
3262
3263         * platform/graphics/openvg/EGLDisplayOpenVG.cpp: Added.
3264         (WebCore::displayManagers):
3265         (WebCore::EGLDisplayOpenVG::currentSurface):
3266         (WebCore::EGLDisplayOpenVG::registerPlatformSurface):
3267         (WebCore::EGLDisplayOpenVG::unregisterPlatformSurface):
3268         (WebCore::EGLDisplayOpenVG::setCurrentDisplay):
3269         (WebCore::EGLDisplayOpenVG::current):
3270         (WebCore::EGLDisplayOpenVG::forDisplay):
3271         (WebCore::EGLDisplayOpenVG::EGLDisplayOpenVG):
3272         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
3273         (WebCore::EGLDisplayOpenVG::setDefaultPbufferConfig):
3274         (WebCore::EGLDisplayOpenVG::defaultPbufferConfig):
3275         (WebCore::EGLDisplayOpenVG::setDefaultWindowConfig):
3276         (WebCore::EGLDisplayOpenVG::defaultWindowConfig):
3277         (WebCore::EGLDisplayOpenVG::sharedPlatformSurface):
3278         (WebCore::EGLDisplayOpenVG::createPbufferSurface):
3279         (WebCore::EGLDisplayOpenVG::surfaceForWindow):
3280         (WebCore::EGLDisplayOpenVG::surfacesCompatible):
3281         (WebCore::EGLDisplayOpenVG::destroySurface):
3282         (WebCore::EGLDisplayOpenVG::contextForSurface):
3283         * platform/graphics/openvg/EGLDisplayOpenVG.h: Added.
3284         (WebCore::EGLDisplayOpenVG::display):
3285         * platform/graphics/openvg/EGLUtils.h: Added.
3286         (toEGLErrorConstant):
3287         * platform/graphics/openvg/SurfaceOpenVG.cpp: Added.
3288         (WebCore::SurfaceOpenVG::currentSurface):
3289         (WebCore::SurfaceOpenVG::SurfaceOpenVG):
3290         (WebCore::SurfaceOpenVG::~SurfaceOpenVG):
3291         (WebCore::SurfaceOpenVG::isValid):
3292         (WebCore::SurfaceOpenVG::width):
3293         (WebCore::SurfaceOpenVG::height):
3294         (WebCore::SurfaceOpenVG::sharedSurface):
3295         (WebCore::SurfaceOpenVG::makeCurrent):
3296         (WebCore::SurfaceOpenVG::makeCompatibleCurrent):
3297         (WebCore::SurfaceOpenVG::flush):
3298         * platform/graphics/openvg/SurfaceOpenVG.h: Added.
3299         (WebCore::SurfaceOpenVG::eglDisplay):
3300         (WebCore::SurfaceOpenVG::eglSurface):
3301         (WebCore::SurfaceOpenVG::eglContext):
3302         * platform/graphics/openvg/VGUtils.h: Added.
3303         (toVGErrorConstant):
3304
3305 2010-01-19  Steve Block  <steveblock@google.com>
3306
3307         Reviewed by David Levin.
3308
3309         Renames jni_utility and jni_utility_private to JNIUtility and JNIUtilityPrivate
3310         https://bugs.webkit.org/show_bug.cgi?id=33843
3311
3312         No new tests, refactoring only.
3313
3314         * Android.jscbindings.mk:
3315         * Android.v8bindings.mk:
3316         * GNUmakefile.am:
3317         * WebCore.xcodeproj/project.pbxproj:
3318         * bridge/jni/JNIUtility.cpp: Copied from WebCore/bridge/jni/jni_utility.cpp.
3319         * bridge/jni/JNIUtility.h: Copied from WebCore/bridge/jni/jni_utility.h.
3320         * bridge/jni/jni_jsobject.mm:
3321         * bridge/jni/jni_objc.mm:
3322         * bridge/jni/jni_runtime.cpp:
3323         * bridge/jni/jni_runtime.h:
3324         * bridge/jni/jni_utility.cpp: Removed.
3325         * bridge/jni/jni_utility.h: Removed.
3326         * bridge/jni/jsc/JNIUtilityPrivate.cpp: Copied from WebCore/bridge/jni/jsc/jni_utility_private.cpp.
3327         (JSC::Bindings::convertValueToJValue):
3328         * bridge/jni/jsc/JNIUtilityPrivate.h: Copied from WebCore/bridge/jni/jsc/jni_utility_private.h.
3329         * bridge/jni/jsc/JavaClassJSC.cpp:
3330         * bridge/jni/jsc/JavaInstanceJSC.cpp:
3331         * bridge/jni/jsc/JavaStringJSC.h:
3332         * bridge/jni/jsc/jni_utility_private.cpp: Removed.
3333         * bridge/jni/jsc/jni_utility_private.h: Removed.
3334         * platform/android/GeolocationServiceBridge.cpp:
3335         * platform/android/GeolocationServiceBridge.h:
3336         * platform/android/TemporaryLinkStubs.cpp:
3337
3338 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
3339
3340         Reviewed by Dan Bernstein.
3341
3342         Occasional crash when interacting with page with reflected WebGL
3343         https://bugs.webkit.org/show_bug.cgi?id=33863
3344         
3345         If updateCompositingLayers() was called with an updateRoot that was a reflection layer,
3346         then we would determine that the layer does not require compositing, and tear down its
3347         backing (without clearing replicaLayer() on the source layer's GraphicsLayer).
3348         
3349         Fix by changing requiresCompositingLayer() on a reflection layer to always give the
3350         same answer for a reflection and its original.
3351         
3352         Also add various belt-and-brances code and null checks to ensure that if we ever end up
3353         with a non-composited reflection layer, we won't crash.
3354         
3355         No new tests, because the crash depends on timing issues that are hard to reproduce in a test.
3356
3357         * platform/graphics/GraphicsLayer.h:
3358         (WebCore::GraphicsLayer::replicaLayer): Make this public so we can use it in an assertion.
3359         
3360         * rendering/RenderLayerCompositor.cpp:
3361         (WebCore::RenderLayerCompositor::updateBacking): Clear the source layer's replica layer
3362         pointer if tearing down backing store of a reflection.
3363         
3364         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Null-check reflection->backing().
3365         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry): Null-check reflection->backing().
3366         (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry): reflection->backing().
3367         (WebCore::RenderLayerCompositor::requiresCompositingLayer): If being called for a reflection layer,
3368         use the source layer to answer the question.        
3369
3370 2010-01-19  Simon Fraser  <simon.fraser@apple.com>
3371
3372         Reviewed by Dan Bernstein.
3373
3374         Some composited reflections incorrectly positioned
3375         https://bugs.webkit.org/show_bug.cgi?id=33856
3376         
3377         When setting the position of the replicated layer inside the reflection, we need to take
3378         into account the bounds of the original layer, and the replica layer to get the
3379         reflection in the right place.
3380
3381         Tests: compositing/reflections/nested-reflection-transformed2.html
3382                compositing/reflections/reflection-positioning2.html
3383
3384         * rendering/RenderLayerBacking.cpp:
3385         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3386
3387 2010-01-19  Enrica Casucci  <enrica@apple.com>
3388
3389         Reviewed by Simon Fraser.
3390
3391         REGRESSION: Infinite recursion in Position::getInlineBoxAndOffset()
3392         https://bugs.webkit.org/show_bug.cgi?id=33864
3393         <rdar://problem/7552959>
3394         
3395         Regression has been introduced by changeset 53085.
3396         The original fix had to be limited to editable content.
3397
3398         Test: editing/selection/selection-applet.html
3399
3400         * dom/Position.cpp:
3401         (WebCore::Position::getInlineBoxAndOffset):
3402
3403 2010-01-19  Kristian Amlie <kristian.amlie@nokia.com>
3404
3405         Reviewed by Laszlo Gombos.
3406
3407         [Qt] Fix qmake warning with qmake in Qt for Symbian
3408         https://bugs.webkit.org/show_bug.cgi?id=33786
3409
3410         * WebCore.pro: Use QMAKE_LFLAGS instead of MMP_RULES.
3411
3412 2010-01-19  Daniel Bates  <dbates@rim.com>
3413
3414         Reviewed by Darin Adler.
3415
3416         https://bugs.webkit.org/show_bug.cgi?id=33851
3417
3418         Fixes an issue in the Apple Mac port where ScrollView::platformVisibleContentRect
3419         returns the rectangle of the document within the content view of
3420         the scroll view (i.e. the rectangle not including scrollbars) when
3421         the parameter includeScrollbars == true
3422
3423         Currently, this behavior contradicts both the comment in ScrollView.h
3424         for method visibleContentRect as well as the behavior in
3425         ScrollView::visibleContentRect() for a platform-independent scroll view.
3426
3427         Instead, it should return the rectangle whose dimensions include
3428         the scrollbars.
3429
3430         Also, removes some extra whitespace at the end of the lines.
3431
3432         No tests included because we cannot test this using either DRT
3433         or a manual test.
3434
3435         * platform/mac/ScrollViewMac.mm:
3436         (WebCore::ScrollView::platformVisibleContentRect): If includeScrollbars == true
3437         then return the rectangle whose dimensions are that of
3438         the frame (i.e. -[NSScrollView frame]).
3439
3440 2010-01-19  Steve Block  <steveblock@google.com>
3441
3442         Reviewed by David Levin.
3443
3444         Fixes style in WebCore/bridge/jni/jsc/JavaClassJSC
3445         https://bugs.webkit.org/show_bug.cgi?id=33819
3446
3447         No new tests, style fixes only.
3448
3449         * bridge/jni/jsc/JavaClassJSC.cpp: Modified.
3450         * bridge/jni/jsc/JavaClassJSC.h: Modified.
3451
3452 2010-01-19  Jaime Yap  <jaimeyap@google.com>
3453
3454         Reviewed by Pavel Feldman.
3455         
3456         Refactors the TimelineRecordFactory and InspectorTimelineAgent to support reporting data
3457         when closing a record. Also includes grabbing the start and end line number for parse HTML
3458         records as a reference use case for the above refactor
3459
3460         Tests updated:
3461             inspector/timeline-parse-html-expected.txt
3462             inspector/timeline-layout-expected.txt
3463             inspector/timeline-recalculate-styles-expected.txt
3464
3465         https://bugs.webkit.org/show_bug.cgi?id=33853
3466
3467         * html/HTMLTokenizer.cpp:
3468         (WebCore::HTMLTokenizer::write):
3469         * inspector/InspectorTimelineAgent.cpp:
3470         (WebCore::InspectorTimelineAgent::willDispatchEvent):
3471         (WebCore::InspectorTimelineAgent::willLayout):
3472         (WebCore::InspectorTimelineAgent::willRecalculateStyle):
3473         (WebCore::InspectorTimelineAgent::willPaint):
3474         (WebCore::InspectorTimelineAgent::willWriteHTML):
3475         (WebCore::InspectorTimelineAgent::didWriteHTML):
3476         (WebCore::InspectorTimelineAgent::didInstallTimer):
3477         (WebCore::InspectorTimelineAgent::didRemoveTimer):
3478         (WebCore::InspectorTimelineAgent::willFireTimer):
3479         (WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
3480         (WebCore::InspectorTimelineAgent::willLoadXHR):
3481         (WebCore::InspectorTimelineAgent::willEvaluateScript):
3482         (WebCore::InspectorTimelineAgent::willSendResourceRequest):
3483         (WebCore::InspectorTimelineAgent::didReceiveResourceResponse):
3484         (WebCore::InspectorTimelineAgent::didFinishLoadingResource):
3485         (WebCore::InspectorTimelineAgent::didMarkTimeline):
3486         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
3487         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
3488         * inspector/InspectorTimelineAgent.h:
3489         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
3490         * inspector/TimelineRecordFactory.cpp:
3491         (WebCore::TimelineRecordFactory::createEventDispatchData):
3492         (WebCore::TimelineRecordFactory::createGenericTimerData):
3493         (WebCore::TimelineRecordFactory::createTimerInstallData):
3494         (WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
3495         (WebCore::TimelineRecordFactory::createXHRLoadData):
3496         (WebCore::TimelineRecordFactory::createEvaluateScriptData):
3497         (WebCore::TimelineRecordFactory::createMarkTimelineData):
3498         (WebCore::TimelineRecordFactory::createResourceSendRequestData):
3499         (WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
3500         (WebCore::TimelineRecordFactory::createResourceFinishData):
3501         (WebCore::TimelineRecordFactory::createPaintData):
3502         (WebCore::TimelineRecordFactory::createParseHTMLData):
3503         * inspector/TimelineRecordFactory.h:
3504
3505 2010-01-19 Joanmarie Diggs  <joanmarie.diggs@gmail.com>
3506
3507         Reviewed by Xan Lopez.
3508
3509         https://bugs.webkit.org/show_bug.cgi?id=30883
3510         [Gtk] Implement AtkText for HTML elements which contain text
3511
3512         Moves the text assembling functionality from getPangoLayoutForAtk to
3513         textForObject, which webkit_accessible_text_get_text now falls back on
3514         when it comes up empty.
3515
3516         Adds a check in textForObject so that we don't double-add newlines
3517         when we have a BR.
3518
3519         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3520         (textForObject):
3521         (getPangoLayoutForAtk):
3522         (webkit_accessible_text_get_text):
3523
3524 2010-01-19  Eric Carlson  <eric.carlson@apple.com>
3525
3526         Reviewed by Adam Roben.
3527
3528         error events don't fire if no <source> elements passed to media engine
3529         https://bugs.webkit.org/show_bug.cgi?id=33855
3530
3531         Test: media/video-source-error-no-candidate.html
3532
3533         * html/HTMLMediaElement.cpp:
3534         (WebCore::HTMLMediaElement::selectMediaResource): Only bail early if
3535         there is no 'src' attribute and no <source> child elements at all.
3536
3537 2010-01-19  Daniel Bates  <dbates@webkit.org>
3538
3539         Reviewed by Adam Roben.
3540
3541         https://bugs.webkit.org/show_bug.cgi?id=33822
3542
3543         REGRESSION(r53273): Fixes redefinition of XFORM error when building
3544         WebKit using Qt Windows with the MinGW compiler.
3545  
3546         Note, MinGW has a slightly different declaration of the struct XFORM
3547         from that in the Microsoft SDK. So, we need to substitute an alternative
3548         typedef for XFORM when compiling with MinGW.
3549
3550         No functionality was changed. So, no new tests.
3551
3552         * platform/graphics/transforms/TransformationMatrix.h:
3553
3554 2010-01-19  Stephen White  <senorblanco@chromium.org>
3555
3556         Reviewed by Dimitri Glazkov.
3557
3558         Fix for crash on large TransparencyWin allocation.  The fix is
3559         to leave m_layerValid false when the allocPixels of
3560         OwnedBuffers::m_referenceBitmap fails.  Then TransparencyWin won't
3561         attempt to use it.
3562
3563         Will be covered by a new unit test in Chromium's test_shell_tests (when
3564         this is rolled into Chromium).
3565
3566         https://bugs.webkit.org/show_bug.cgi?id=33844
3567
3568         * platform/graphics/chromium/TransparencyWin.cpp:
3569         (WebCore::TransparencyWin::initializeNewContext):
3570         Early return when m_referenceBitmap or its pixels is NULL, leaving
3571         m_layerValid false.
3572
3573 2010-01-19  Eric Carlson  <eric.carlson@apple.com>
3574
3575         Reviewed by Adam Roben.
3576
3577         video.networkState remains NETWORK_LOADING indefinitely when no <source> element was able to be loaded
3578         https://bugs.webkit.org/show_bug.cgi?id=33744
3579
3580         Test: media/video-source-none-supported.html
3581
3582         * html/HTMLMediaElement.cpp:
3583         (WebCore::HTMLMediaElement::loadNextSourceChild): Call waitForSourceChange if
3584             there are no valid source elements.
3585         (WebCore::HTMLMediaElement::waitForSourceChange): New, set networkState to NETWORK_NO_SOURCE.
3586         (WebCore::HTMLMediaElement::setNetworkState): Call waitForSourceChange if the movie
3587             hasn't reached HAVE_METADATA and there are no more <source> elements to try.
3588         * html/HTMLMediaElement.h: Declare waitForSourceChange.
3589
3590 2010-01-19  Daniel Bates  <dbates@rim.com>
3591
3592         Reviewed by Adam Treat.
3593
3594         https://bugs.webkit.org/show_bug.cgi?id=33408
3595
3596         Implements an optimization to ignore fixed background images
3597         (i.e. background-attachment: fixed) when a page does not contain
3598         any fixed position elements so as to allow fast repaints (via bit
3599         blit) when scrolling a page.
3600
3601         Currently, if a page has elements that specify either a fixed
3602         background or a fixed position then we perform a slow repaint
3603         (i.e disable blitting) so as to avoid rendering artifacts.
3604         However, on low-powered/mobile devices slow repaints can cause
3605         noticeable delays when scrolling a page with a fixed background
3606         image. By sacrificing support for fixed background images when
3607         there are no fixed elements on the page and with come care, we
3608         don't need to force slow repaints and can avoid rendering artifacts.
3609         Hence, on such devices we can improve the responsiveness of
3610         scrolling a page with a fixed background image.
3611
3612         Note, this optimization is only enabled if the WebKit is built
3613         with FAST_MOBILE_SCROLLING enabled.
3614
3615         Tests: fast/fast-mobile-scrolling/fixed-position-element.html
3616                fast/fast-mobile-scrolling/no-fixed-position-elements.html
3617
3618         * rendering/RenderBoxModelObject.cpp:
3619         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
3620         Disable fixed background attachment if we can blit on scroll.
3621         * rendering/RenderObject.cpp:
3622         (WebCore::RenderObject::styleWillChange):
3623
3624 2010-01-19  Dave Hyatt  <hyatt@apple.com>
3625
3626         Build bustage fix.  Land modified WebCore.base.exp file that includes export of currentWorld().
3627
3628         * WebCore.base.exp:
3629
3630 2010-01-19  Brady Eidson  <beidson@apple.com>
3631
3632         Reviewed by Alexey Proskuryakov.
3633
3634         Crash in Page::backForwardList when using History object from a detached window
3635         <rdar://problem/7556252> and https://bugs.webkit.org/show_bug.cgi?id=33828
3636
3637         Test: fast/loader/stateobjects/state-api-on-detached-frame-crash.html
3638
3639         * page/History.cpp:
3640         (WebCore::History::stateObjectAdded): Do an early return when detached. The spec
3641           doesn't really cover expected behavior and we already do something similar in 
3642           other places, such as in History::length().
3643
3644 2010-01-19  Yury Semikhatsky  <yurys@chromium.org>
3645
3646         Reviewed by NOBODY (build fix).
3647
3648         Revert r53467. Browser crashes on opening inspector if there
3649         are messages in console.
3650
3651         * bindings/js/JSInjectedScriptHostCustom.cpp:
3652         (WebCore::JSInjectedScriptHost::databaseForId):
3653         (WebCore::JSInjectedScriptHost::inspectedWindow):
3654         (WebCore::JSInjectedScriptHost::wrapCallback):
3655         (WebCore::JSInjectedScriptHost::currentCallFrame):
3656         (WebCore::JSInjectedScriptHost::nodeForId):
3657         (WebCore::JSInjectedScriptHost::wrapObject):
3658         (WebCore::JSInjectedScriptHost::unwrapObject):
3659         (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
3660         (WebCore::JSInjectedScriptHost::selectDatabase):
3661         (WebCore::JSInjectedScriptHost::selectDOMStorage):
3662         * bindings/js/ScriptController.cpp:
3663         * bindings/js/ScriptController.h:
3664         * bindings/js/ScriptObject.h:
3665         * bindings/js/ScriptValue.cpp:
3666         (WebCore::ScriptValue::quarantineValue):
3667         * bindings/js/ScriptValue.h:
3668         * bindings/v8/ScriptObject.h:
3669         * bindings/v8/ScriptValue.h:
3670         (WebCore::ScriptValue::quarantineValue):
3671         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3672         (WebCore::V8InjectedScriptHost::inspectedWindowCallback):
3673         (WebCore::V8InjectedScriptHost::wrapCallbackCallback):
3674         (WebCore::V8InjectedScriptHost::wrapObjectCallback):
3675         (WebCore::V8InjectedScriptHost::unwrapObjectCallback):
3676         * inspector/ConsoleMessage.cpp:
3677         (WebCore::ConsoleMessage::ConsoleMessage):
3678         (WebCore::ConsoleMessage::addToConsole):
3679         (WebCore::ConsoleMessage::isEqual):
3680         * inspector/ConsoleMessage.h:
3681         * inspector/InjectedScriptHost.cpp:
3682         (WebCore::InjectedScriptHost::wrapObject):
3683         (WebCore::InjectedScriptHost::unwrapObject):
3684         * inspector/InjectedScriptHost.h:
3685         * inspector/InjectedScriptHost.idl:
3686         * inspector/InspectorBackend.cpp:
3687         (WebCore::InspectorBackend::dispatchOnInjectedScript):
3688         (WebCore::InspectorBackend::releaseWrapperObjectGroup):
3689         * inspector/InspectorBackend.h:
3690         * inspector/InspectorBackend.idl:
3691         * inspector/InspectorController.cpp:
3692         (WebCore::InspectorController::InspectorController):
3693         (WebCore::InspectorController::clearConsoleMessages):
3694         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
3695         (WebCore::InspectorController::windowScriptObjectAvailable):
3696         (WebCore::InspectorController::scriptObjectReady):
3697         (WebCore::InspectorController::setFrontendProxyObject):
3698         (WebCore::InspectorController::close):
3699         (WebCore::InspectorController::resetScriptObjects):
3700         (WebCore::InspectorController::didPause):
3701         (WebCore::InspectorController::wrapObject):
3702         (WebCore::InspectorController::unwrapObject):
3703         (WebCore::InspectorController::releaseWrapperObjectGroup):
3704         (WebCore::InspectorController::resetInjectedScript):
3705         * inspector/InspectorController.h:
3706         * inspector/InspectorFrontend.cpp:
3707         (WebCore::InspectorFrontend::addConsoleMessage):
3708         (WebCore::InspectorFrontend::pausedScript):
3709         * inspector/InspectorFrontend.h:
3710         * inspector/front-end/AuditsPanel.js:
3711         (WebInspector.AuditsPanel.prototype._reloadResources):
3712         * inspector/front-end/ConsoleView.js:
3713         (WebInspector.ConsoleView.prototype.requestClearMessages):
3714         (WebInspector.ConsoleView.prototype.completions):
3715         (WebInspector.ConsoleView.prototype.doEvalInWindow):
3716         (WebInspector.ConsoleView.prototype._formatnode):
3717         (WebInspector.ConsoleView.prototype._formatarray):
3718         * inspector/front-end/DOMAgent.js:
3719         (WebInspector.DOMNode):
3720         (WebInspector.CSSStyleDeclaration):
3721         (WebInspector.CSSStyleDeclaration.parseRule):
3722         * inspector/front-end/Database.js:
3723         (WebInspector.Database.prototype.executeSql):
3724         * inspector/front-end/ElementsPanel.js:
3725         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
3726         (WebInspector.ElementsPanel.prototype.setDocument):
3727         (WebInspector.ElementsPanel.prototype.searchCanceled):
3728         (WebInspector.ElementsPanel.prototype.performSearch):
3729         * inspector/front-end/ElementsTreeOutline.js:
3730         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
3731         * inspector/front-end/EventListenersSidebarPane.js:
3732         ():
3733         * inspector/front-end/InjectedScript.js:
3734         (InjectedScript.dispatch):
3735         (InjectedScript.toggleStyleEnabled):
3736         (InjectedScript._serializeRule):
3737         (InjectedScript._serializeStyle):
3738         (InjectedScript.getProperties):
3739         (InjectedScript.setPropertyValue):
3740         (InjectedScript._evaluateAndWrap):
3741         (InjectedScript.getCallFrames):
3742         (InjectedScript._inspectObject):
3743         (InjectedScript._ensureCommandLineAPIInstalled):
3744         (InjectedScript._resolveObject):
3745         (InjectedScript._window):
3746         (InjectedScript._objectForId):
3747         (InjectedScript.createProxyObject):
3748         (InjectedScript.executeSql):
3749         (InjectedScript.executeSql.errorCallback):
3750         (InjectedScript.executeSql.queryTransaction):
3751         (Object.type):
3752         (String.prototype.escapeCharacters):
3753         * inspector/front-end/InjectedScriptAccess.js:
3754         (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
3755         (InjectedScriptAccess._installHandler):
3756         * inspector/front-end/MetricsSidebarPane.js:
3757         (WebInspector.MetricsSidebarPane):
3758         (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
3759         (WebInspector.MetricsSidebarPane.prototype.update):
3760         (WebInspector.MetricsSidebarPane.prototype.editingCommitted):
3761         * inspector/front-end/ObjectPropertiesSection.js:
3762         (WebInspector.ObjectPropertiesSection.prototype.update):
3763         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
3764         (WebInspector.ObjectPropertyTreeElement.prototype.applyExpression):
3765         * inspector/front-end/ObjectProxy.js:
3766         (WebInspector.ObjectProxy):
3767         (WebInspector.ObjectProxy.getPropertiesAsync):
3768         * inspector/front-end/PropertiesSidebarPane.js:
3769         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
3770         (WebInspector.PropertiesSidebarPane.prototype.update):
3771         * inspector/front-end/ResourcesPanel.js:
3772         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
3773         * inspector/front-end/ScriptsPanel.js:
3774         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
3775         * inspector/front-end/StylesSidebarPane.js:
3776         (WebInspector.StylesSidebarPane.prototype.update):
3777         (WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
3778         (WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
3779         (WebInspector.StylePropertyTreeElement.prototype):
3780         * inspector/front-end/WatchExpressionsSidebarPane.js:
3781         (WebInspector.WatchExpressionsSection.prototype.update):
3782         * inspector/front-end/inspector.js:
3783         (WebInspector.loaded):
3784         (WebInspector.pausedScript):
3785         (WebInspector.addConsoleMessage):
3786         (WebInspector.log.logMessage):
3787         (WebInspector.log):
3788
3789 2010-01-19  Yury Semikhatsky  <yurys@chromium.org>
3790
3791         Reviewed by Pavel Feldman.
3792
3793         Inject inspector script directly into the inspected context. All the
3794         communication between the script and the frontend is serialized into
3795         JSON strings. It allows to get rid of object quarantines in Web Inspector.
3796
3797         https://bugs.webkit.org/show_bug.cgi?id=32554
3798
3799         * bindings/js/JSInjectedScriptHostCustom.cpp:
3800         (WebCore::JSInjectedScriptHost::databaseForId):
3801         (WebCore::JSInjectedScriptHost::currentCallFrame):
3802         (WebCore::JSInjectedScriptHost::nodeForId):
3803         (WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
3804         (WebCore::JSInjectedScriptHost::selectDatabase):
3805         (WebCore::JSInjectedScriptHost::selectDOMStorage):
3806         * bindings/js/ScriptController.cpp:
3807         (WebCore::ScriptController::mainWorldScriptState):
3808         * bindings/js/ScriptController.h:
3809         * bindings/js/ScriptObject.h:
3810         (WebCore::ScriptObject::scriptState):
3811         * bindings/js/ScriptValue.cpp:
3812         * bindings/js/ScriptValue.h:
3813         * bindings/v8/ScriptObject.h:
3814         (WebCore::ScriptObject::scriptState):
3815         * bindings/v8/ScriptValue.h:
3816         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
3817         * inspector/ConsoleMessage.cpp:
3818         (WebCore::ConsoleMessage::ConsoleMessage):
3819         (WebCore::ConsoleMessage::addToConsole):
3820         (WebCore::ConsoleMessage::isEqual):
3821         * inspector/ConsoleMessage.h:
3822         * inspector/InjectedScriptHost.cpp:
3823         (WebCore::InjectedScriptHost::releaseWrapperObjectGroup):
3824         * inspector/InjectedScriptHost.h:
3825         * inspector/InjectedScriptHost.idl:
3826         * inspector/InspectorBackend.cpp:
3827         (WebCore::InspectorBackend::setInjectedScriptSource):
3828         (WebCore::InspectorBackend::dispatchOnInjectedScript):
3829         (WebCore::InspectorBackend::releaseWrapperObjectGroup):
3830         * inspector/InspectorBackend.h:
3831         * inspector/InspectorBackend.idl:
3832         * inspector/InspectorController.cpp:
3833         (WebCore::InspectorController::InspectorController):
3834         (WebCore::InspectorController::clearConsoleMessages):
3835         (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
3836         (WebCore::InspectorController::windowScriptObjectAvailable):
3837         (WebCore::InspectorController::scriptObjectReady):
3838         (WebCore::InspectorController::setFrontendProxyObject):
3839         (WebCore::InspectorController::close):
3840         (WebCore::InspectorController::resetScriptObjects):
3841         (WebCore::InspectorController::didPause):
3842         (WebCore::InspectorController::injectedScriptForNodeId):
3843         * inspector/InspectorController.h:
3844         * inspector/InspectorFrontend.cpp:
3845         (WebCore::InspectorFrontend::addConsoleMessage):
3846         (WebCore::InspectorFrontend::pausedScript):
3847         * inspector/InspectorFrontend.h:
3848         * inspector/front-end/AuditsPanel.js:
3849         (WebInspector.AuditsPanel.prototype._reloadResources):
3850         * inspector/front-end/ConsoleView.js:
3851         (WebInspector.ConsoleView.prototype.requestClearMessages):
3852         (WebInspector.ConsoleView.prototype.doEvalInWindow):
3853         * inspector/front-end/DOMAgent.js:
3854         (WebInspector.DOMNode):
3855         (WebInspector.CSSStyleDeclaration):
3856         (WebInspector.CSSStyleDeclaration.parseRule):
3857         * inspector/front-end/Database.js:
3858         (WebInspector.Database.prototype.executeSql):
3859         * inspector/front-end/ElementsPanel.js:
3860         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged.InjectedScriptAccess.get addInspectedNode):
3861         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
3862         (WebInspector.ElementsPanel.prototype.setDocument):
3863         (WebInspector.ElementsPanel.prototype.searchCanceled):
3864         (WebInspector.ElementsPanel.prototype.performSearch):
3865         * inspector/front-end/ElementsTreeOutline.js:
3866         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
3867         * inspector/front-end/EventListenersSidebarPane.js:
3868         ():
3869         * inspector/front-end/InjectedScript.js:
3870         (injectedScriptConstructor):
3871         (injectedScriptConstructor.):
3872         * inspector/front-end/InjectedScriptAccess.js:
3873         (InjectedScriptAccess):
3874         (InjectedScriptAccess.getDefault):
3875         (get InjectedScriptAccess):
3876         (InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
3877         (InjectedScriptAccess._installHandler):
3878         * inspector/front-end/MetricsSidebarPane.js:
3879         (WebInspector.MetricsSidebarPane):
3880         (WebInspector.MetricsSidebarPane.prototype.update.inlineStyleCallback):
3881         * inspector/front-end/ObjectPropertiesSection.js:
3882         * inspector/front-end/ObjectProxy.js:
3883         (WebInspector.ObjectProxy):
3884         * inspector/front-end/PropertiesSidebarPane.js:
3885         (WebInspector.PropertiesSidebarPane.prototype.update.callback):
3886         * inspector/front-end/ResourcesPanel.js:
3887         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
3888         * inspector/front-end/ScriptsPanel.js:
3889         * inspector/front-end/StylesSidebarPane.js:
3890         (WebInspector.StylePropertyTreeElement.prototype):
3891         * inspector/front-end/WatchExpressionsSidebarPane.js:
3892         (WebInspector.WatchExpressionsSection.prototype.update):
3893         * inspector/front-end/inspector.js:
3894         (WebInspector.loaded):
3895         (WebInspector.pausedScript):
3896         (WebInspector.addConsoleMessage):
3897         (WebInspector.log.logMessage):
3898         (WebInspector.log):
3899
3900 2010-01-19  Steve Block  <steveblock@google.com>
3901
3902         Unreviewed build fix.
3903
3904         Fixes Windows build due to http://trac.webkit.org/changeset/53464
3905         Updates WebCore.vcproj to reflect renaming of runtime.[cpp|h] to Bridge.[cpp|h]
3906
3907         No new tests, build fix only.
3908
3909         * WebCore.vcproj/WebCore.vcproj:
3910
3911 2010-01-19  Steve Block  <steveblock@google.com>
3912
3913         Reviewed by Adam Barth.
3914
3915         Renames WebCore/bridge/runtime.[cpp|h] to WebCore/bridge/Bridge.[cpp|h]
3916         https://bugs.webkit.org/show_bug.cgi?id=33801
3917
3918         runtime.[cpp|h] contains general interface classes for use in the bridge,
3919         so Bridge is a more appropriate name than runtime.
3920
3921         No new tests, renaming only.
3922
3923         * Android.jscbindings.mk:
3924         * GNUmakefile.am:
3925         * WebCore.pro:
3926         * WebCore.xcodeproj/project.pbxproj:
3927         * WebCoreSources.bkl:
3928         * bindings/js/JSPluginElementFunctions.cpp:
3929         * bindings/js/ScriptControllerGtk.cpp:
3930         * bindings/js/ScriptControllerHaiku.cpp:
3931         * bindings/js/ScriptControllerMac.mm:
3932         * bindings/js/ScriptControllerQt.cpp:
3933         * bindings/js/ScriptControllerWin.cpp:
3934         * bindings/js/ScriptControllerWx.cpp:
3935         * bindings/js/ScriptInstance.h:
3936         * bindings/objc/WebScriptObject.mm:
3937         * bridge/Bridge.cpp: Copied from WebCore/bridge/runtime.cpp.
3938         * bridge/Bridge.h: Copied from WebCore/bridge/runtime.h.
3939         * bridge/c/c_class.h:
3940         * bridge/c/c_instance.h:
3941         * bridge/c/c_runtime.h:
3942         * bridge/jni/jni_instance.h:
3943         * bridge/objc/objc_runtime.h:
3944         * bridge/qt/qt_class.h:
3945         * bridge/qt/qt_instance.h:
3946         * bridge/qt/qt_runtime.cpp:
3947         * bridge/qt/qt_runtime.h:
3948         * bridge/runtime.cpp: Removed.
3949         * bridge/runtime.h: Removed.
3950         * bridge/runtime_array.h:
3951         * bridge/runtime_method.h:
3952         * bridge/runtime_object.h:
3953         * bridge/runtime_root.cpp:
3954         * bridge/testbindings.cpp:
3955         * bridge/testbindings.mm:
3956         * bridge/testqtbindings.cpp:
3957         * page/win/FrameWin.cpp:
3958         * platform/graphics/wince/MediaPlayerProxy.cpp:
3959         * plugins/PluginView.cpp:
3960         * plugins/gtk/PluginViewGtk.cpp:
3961         * plugins/mac/PluginViewMac.cpp:
3962         * plugins/qt/PluginViewQt.cpp:
3963         * plugins/symbian/PluginViewSymbian.cpp:
3964         * plugins/win/PluginViewWin.cpp:
3965
3966 2010-01-19  Geoffrey Garen  <ggaren@apple.com>
3967
3968         Reviewed by Oliver Hunt.
3969
3970         REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
3971         https://bugs.webkit.org/show_bug.cgi?id=33826
3972
3973         Test: fast/workers/worker-gc2.html
3974
3975         * bindings/js/WorkerScriptController.cpp:
3976         (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
3977         ASSERTs that have moved to JavaScriptCore.
3978
3979 2010-01-19  Gavin Barraclough  <barraclough@apple.com>
3980
3981         Reviewed by NOBODY (build fix).
3982
3983         Reverting r53455, breaks 2 javascriptcore tests.
3984
3985         * bindings/js/WorkerScriptController.cpp:
3986         (WebCore::WorkerScriptController::~WorkerScriptController):
3987
3988 2010-01-18  Geoffrey Garen  <ggaren@apple.com>
3989
3990         Reviewed by Oliver Hunt.
3991
3992         REGRESSION (52082): Crash on worker thread when reloading http://radnan.public.iastate.edu/procedural/
3993         https://bugs.webkit.org/show_bug.cgi?id=33826
3994
3995         Test: fast/workers/worker-gc2.html
3996
3997         * bindings/js/WorkerScriptController.cpp:
3998         (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
3999         ASSERTs that have moved to JavaScriptCore.
4000
4001 2010-01-18  Daniel Bates  <dbates@webkit.org>
4002
4003         Reviewed by Darin Adler.
4004
4005         https://bugs.webkit.org/show_bug.cgi?id=33089
4006
4007         Implements all of the alphabetic CSS3 list-style-types as per
4008         section 4.4 of the CSS3 Lists module <http://www.w3.org/TR/css3-lists/#alphabetic>.
4009
4010         Test: fast/lists/w3-css3-list-styles-alphabetic.html
4011
4012         * css/CSSParser.cpp:
4013         (WebCore::CSSParser::parseValue): Updated comment to include
4014         added list-style-types.
4015         * css/CSSPrimitiveValueMappings.h:
4016         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added new list style types,
4017         alphabetized enums, and removed indent to conform to the WebKit Code Style Guidelines.
4018         * css/CSSValueKeywords.in:
4019         * inspector/front-end/CSSSourceSyntaxHighlighter.js:
4020         (WebInspector.CSSSourceSyntaxHighlighter): Added new list style types
4021         and alphabetized array valueKeywords.
4022         * platform/text/CharacterNames.h: Added constant ethiopicPrefaceColon.
4023         * rendering/RenderListMarker.cpp:
4024         (WebCore::toAlphabetic):
4025         (WebCore::listMarkerSuffix): Added.
4026         (WebCore::listMarkerText):
4027         (WebCore::RenderListMarker::paint): Modified to call WebCore::listMarkerSuffix.
4028         (WebCore::RenderListMarker::calcPrefWidths): Ditto.
4029         (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
4030         * rendering/style/RenderStyle.h:
4031         (WebCore::):
4032         * rendering/style/RenderStyleConstants.h:
4033         (WebCore::):
4034
4035 2010-01-18  Daniel Bates  <dbates@webkit.org>
4036
4037         Unreviewed, fix misspelling of the word maximum in comment.
4038
4039         * html/HTMLInputElement.cpp:
4040         (WebCore::HTMLInputElement::maximum):
4041
4042 2010-01-18  Dan Bernstein  <mitz@apple.com>
4043
4044         Rubber-stamped by Sam Weinig.
4045
4046         <rdar://problem/7476957> REGRESSION (r49567): Business widget list does not line up: too tall due to line height rounding change
4047
4048         Reverted r49567.
4049
4050         * css/CSSComputedStyleDeclaration.cpp:
4051         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
4052         * rendering/InlineFlowBox.cpp:
4053         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
4054         * rendering/RenderBR.cpp:
4055         (WebCore::RenderBR::lineHeight):
4056         * rendering/style/RenderStyle.h:
4057         (WebCore::InheritedFlags::computedLineHeight):
4058
4059 2010-01-18  Steve Block  <steveblock@google.com>
4060
4061         Reviewed by Adam Barth.
4062
4063         Moves JSC-specific implementation of JavaString to a private implementation class.
4064         https://bugs.webkit.org/show_bug.cgi?id=33558
4065
4066         Also modifies JavaField::name and JavaMethod::name to return const JavaString&, rather than UString::Rep*,
4067         which is JSC-specific. This allows this code to be used with both JSC and V8, as required by Android.
4068
4069         No new tests, refactoring only.
4070
4071         * WebCore.xcodeproj/project.pbxproj: Modified. Added JavaStringJSC.h
4072         * bridge/jni/jni_class.cpp: Modified.
4073         (JavaClass::JavaClass): Modified. Updates call sites of JavaField::name and JavaMethod::name.
4074         * bridge/jni/jni_runtime.h: Modified.
4075         (JSC::Bindings::JavaString::JavaString): Modified. Pass through to implementation.
4076         (JSC::Bindings::JavaString::UTF8String): Modified. Pass through to implementation.
4077         (JSC::Bindings::JavaString::uchars): Modified. Pass through to implementation.
4078         (JSC::Bindings::JavaString::length): Modified. Pass through to implementation.
4079         (JSC::Bindings::JavaString::operator UString): Modified. Pass through to implementation.
4080         (JSC::Bindings::JavaField::name): Modified. Pass through to implementation.
4081         (JSC::Bindings::JavaMethod::name): Modified. Pass through to implementation.
4082         * bridge/jni/jsc/JavaStringJSC.h: Added.
4083         (JSC::Bindings::JavaStringImpl::~JavaStringImpl):
4084         (JSC::Bindings::JavaStringImpl::init):
4085         (JSC::Bindings::JavaStringImpl::UTF8String):
4086         (JSC::Bindings::JavaStringImpl::uchars):
4087         (JSC::Bindings::JavaStringImpl::length):
4088         (JSC::Bindings::JavaStringImpl::uString):
4089
4090 2010-01-18  Yuzo Fujishima  <yuzo@google.com>
4091
4092         Reviewed by Darin Adler.
4093
4094         Skip an error after invalid blocks in a CSS expression.
4095         https://bugs.webkit.org/show_bug.cgi?id=33650
4096
4097         * css/CSSGrammar.y:
4098
4099 2010-01-15  Gavin Barraclough  <barraclough@apple.com>
4100
4101         Reviewed by Darin Adler & Oliver Hunt.
4102
4103         https://bugs.webkit.org/show_bug.cgi?id=33731
4104         Remove uses of PtrAndFlags from WebCore::StringImpl.
4105
4106         These break the OS X Leaks tool.  Move the management of null-terminated copies
4107         out from StringImpl to String, and use a bit stolen from the refCount to hold the
4108         'InTable' flag.
4109
4110         * platform/sql/SQLiteFileSystem.cpp:
4111         (WebCore::SQLiteFileSystem::openDatabase):
4112         * platform/sql/SQLiteStatement.cpp:
4113         (WebCore::SQLiteStatement::prepare):
4114         * platform/sql/SQLiteStatement.h:
4115         * platform/text/PlatformString.h:
4116         * platform/text/String.cpp:
4117         (WebCore::String::copyWithNullTermination):
4118         * platform/text/StringImpl.cpp:
4119         (WebCore::StringImpl::StringImpl):
4120         (WebCore::StringImpl::~StringImpl):
4121         (WebCore::StringImpl::create):
4122         (WebCore::StringImpl::crossThreadString):
4123         (WebCore::StringImpl::sharedBuffer):
4124         * platform/text/StringImpl.h:
4125         (WebCore::StringImpl::inTable):
4126         (WebCore::StringImpl::setInTable):
4127
4128 2010-01-18  Nikolas Zimmermann  <nzimmermann@rim.com>
4129
4130         Reviewed by Dirk Schulze.
4131
4132         Rewrite SVG <use> support in a modern-fashion
4133         https://bugs.webkit.org/show_bug.cgi?id=33776
4134
4135         Tests: svg/custom/relative-sized-deep-shadow-tree-content.xhtml
4136                svg/custom/relative-sized-shadow-tree-content.xhtml
4137
4138         Fixes: svg/W3C-SVG-1.1/animate-elem-30-t.svg (animated circle sometimes takes wrong path)
4139
4140         Rewrite <use> support in less intrusive way. Try hard to avoid recloning where possible, and do it lazily.
4141         Introduce RenderSVGShadowTreeRootContainer as special renderer for SVGUseElement, that now manages the
4142         render tree, instead of SVGUseElement manually hacking around it's own renderer from the DOM side.
4143
4144         Instead of recloning the whole shadow tree for every attribute change (DOM setAttribute / SVG DOM changes / CSS changes / childrenChanged()...)
4145         just notify the RenderSVGShadowTreeRootContainer that it's supposed to reclone the tree upon the next updateFromElement() call.
4146
4147         updateFromElement() is fired from SVGUseElement::attach() / recalcStyle(), as it's done for HTMLFormControlElement/HTMLMediaElement, thus
4148         lazily recloning the shadow tree if necessary.
4149
4150         Animations for <use> elements was a real performance bottlenck as the tree got recloned on every attribute change. Reclones are _completly_
4151         avoided for animations now - the SVGAnim*Element classes already updated the instances of an element manually, though that resulted in a reclone
4152         nontheless, and thus killing performance. <use> elements can only be recloned through mutations of the elements that they reference to.
4153         For example referencing a <rect> element from a <use> element and scripting the <rect> element (setAttribute, or child tree mutations etc.).
4154         We reclone instead of trying to synchronize trees - as it's currenty implemented - because it's very hard to do it right.
4155
4156         Any DOM / SVG DOM / CSS change on the <use> element don't reclone the tree anymore, this is a huge speed benefit.
4157         x/y attribute changes are correctly handled in the render tree now (by an additional local transformation), now percentual values work
4158         as expected, and resize on window changes - affecting lots of testcases.
4159
4160         The <use> implementation is much safer now, not doing any mutations synchronously from svgAttributeChanged etc.
4161         Remove hack to force garbage collection on SVGElementInstance destruction - can't reproduce it anymore.
4162
4163         * Android.mk: Add new files to build.
4164         * GNUmakefile.am: Ditto.
4165         * WebCore.gypi: Ditto.
4166         * WebCore.pro: Ditto.
4167         * WebCore.vcproj/WebCore.vcproj: Ditto.
4168         * WebCore.xcodeproj/project.pbxproj: Ditto.
4169         * rendering/RenderSVGShadowTreeRootContainer.cpp: Added. This is the rendered now created by SVGUseElement.
4170         (WebCore::RenderSVGShadowTreeRootContainer::RenderSVGShadowTreeRootContainer):
4171         (WebCore::RenderSVGShadowTreeRootContainer::~RenderSVGShadowTreeRootContainer):
4172         (WebCore::RenderSVGShadowTreeRootContainer::updateStyle): Used form SVGUseElement to request style recalculations for the shadow tree renderers
4173         (WebCore::RenderSVGShadowTreeRootContainer::updateFromElement): Used from SVGUseElement attach/recalcStyle to eventually request shadow tree updates.
4174         (WebCore::RenderSVGShadowTreeRootContainer::styleDidChange): Used to propage style updates across shadow tree boundaries.
4175         * rendering/RenderSVGShadowTreeRootContainer.h: Added.
4176         (WebCore::RenderSVGShadowTreeRootContainer::markShadowTreeForRecreation): Marks the shadow tree for a reclone, next time updateFromElement is used.
4177         * rendering/RenderSVGTransformableContainer.cpp:
4178         (WebCore::RenderSVGTransformableContainer::calculateLocalTransform): Take containerTranslation() into account, supplied by RenderSVGSDhadowTreeContainer.
4179         * rendering/SVGShadowTreeElements.cpp: Added. This is the root element of the SVG shadow tree residing as (hidden) child of SVGUseElement (DOM wise).
4180         (WebCore::SVGShadowTreeContainerElement::SVGShadowTreeContainerElement):
4181         (WebCore::SVGShadowTreeContainerElement::~SVGShadowTreeContainerElement):
4182         (WebCore::SVGShadowTreeContainerElement::containerTranslation): Used from calculateLocalTransform() to take x/y translation into account for shadow tree container elements.
4183         (WebCore::SVGShadowTreeRootElement::SVGShadowTreeRootElement):
4184         (WebCore::SVGShadowTreeRootElement::~SVGShadowTreeRootElement):
4185         (WebCore::SVGShadowTreeRootElement::attachElement): Used by RenderSVGShadowTreeRootContainer, instead of attach(), as we're a shadow tree root node.
4186         * rendering/SVGShadowTreeElements.h: Added. This is the root element of each SVG shadow sub-tree (whenever a <use> element is expanded in the shadow tree).
4187         (WebCore::SVGShadowTreeContainerElement::isShadowTreeContainerElement): Return true here.
4188         (WebCore::SVGShadowTreeContainerElement::setContainerOffset): Used from SVGUseElement to propagate x/y translation values set on <use> elements in the shadow tree.
4189         (WebCore::SVGShadowTreeRootElement::isShadowNode): Identify us as shadow node.
4190         (WebCore::SVGShadowTreeRootElement::shadowParentNode): Ditto. Return actual shadow parent node (== corresponding use element).
4191         * svg/SVGElement.cpp: Shrink size of all SVG*Elements, by removing the m_shadowParent parent. SVGShadowTreeRootElement is the new base class for shadow tree.
4192         (WebCore::SVGElement::SVGElement):
4193         (WebCore::SVGElement::eventParentNode): Call virtual shadowParentNode() method, instead of accessing m_shadowParent.
4194         * svg/SVGElement.h: Remove isShadowNode() / shadowParentNode() / setShadowParentNode().
4195         * svg/SVGElementInstance.cpp: Remove the hack, calling garbage collection before destruction. Can't reproduce this anymore, let's see what the bots say.
4196         (WebCore::SVGElementInstance::SVGElementInstance): Remove now unnecessary m_needsUpdate flag.
4197         (WebCore::SVGElementInstance::invalidateAllInstancesOfElement): Don't invalidate if instance updates are blocked (see SVGStyledElement changes)
4198         * svg/SVGElementInstance.h: Remove m_needsUpdate, and forgetWrapper() method.
4199         * svg/SVGGElement.h:
4200         (WebCore::SVGGElement::isShadowTreeContainerElement): Add new virtual method here returning false by default, SVGShadowTreeContainerElement will override it.
4201         * svg/SVGStyledElement.cpp: Remove gElementsWithInstanceUpdatesBlocked HashSet tracking the state of instancesUpdatesBlocked() per SVGStyledElement - make it a member variable.
4202         * svg/SVGStyledElement.h: Add inline getter/setters around m_instanceUpdatesBlocked.
4203         (WebCore::SVGStyledElement::instanceUpdatesBlocked):
4204         (WebCore::SVGStyledElement::setInstanceUpdatesBlocked):
4205         * svg/SVGUseElement.cpp: Full rewrite of <use> support, a detailed discussion would blow the ChangeLog - see short version above.
4206         (WebCore::SVGUseElement::SVGUseElement):
4207         (WebCore::SVGUseElement::instanceRoot):
4208         (WebCore::SVGUseElement::insertedIntoDocument):
4209         (WebCore::SVGUseElement::removedFromDocument):
4210         (WebCore::SVGUseElement::svgAttributeChanged):
4211         (WebCore::updateContainerOffset):
4212         (WebCore::SVGUseElement::updateContainerOffsets):
4213         (WebCore::SVGUseElement::recalcStyle):
4214         (WebCore::dumpInstanceTree):
4215         (WebCore::SVGUseElement::buildPendingResource):
4216         (WebCore::SVGUseElement::buildShadowAndInstanceTree):
4217         (WebCore::SVGUseElement::createRenderer):
4218         (WebCore::updateFromElementCallback):
4219         (WebCore::SVGUseElement::attach):
4220         (WebCore::SVGUseElement::detach):
4221         (WebCore::SVGUseElement::toClipPath):
4222         (WebCore::SVGUseElement::buildInstanceTree):
4223         (WebCore::SVGUseElement::handleDeepUseReferencing):
4224         (WebCore::SVGUseElement::buildShadowTree):
4225         (WebCore::SVGUseElement::expandUseElementsInShadowTree):
4226         (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
4227         (WebCore::SVGUseElement::instanceForShadowTreeElement):
4228         (WebCore::SVGUseElement::invalidateShadowTree):
4229         (WebCore::SVGUseElement::transferUseAttributesToReplacedElement):
4230         * svg/SVGUseElement.h:
4231         (WebCore::SVGUseElement::isPendingResource):
4232
4233 2010-01-18  Kent Tamura  <tkent@chromium.org>
4234
4235         Reviewed by Darin Adler.
4236
4237         HTMLInputElement::valueAsDate setter support for type=month.
4238         https://bugs.webkit.org/show_bug.cgi?id=33021
4239
4240         Introduce ISODateTime::setMillisecondsSinceEpochForMonth() and
4241         toString() for the Month type, and HTMLInputElement::setValueAsDate()
4242         calls them.
4243
4244         * html/HTMLInputElement.cpp:
4245         (WebCore::HTMLInputElement::setValueAsDate):
4246         * html/ISODateTime.cpp: