1 2010-01-22 Kelly Norton <knorton@google.com>
3 Reviewed by Pavel Feldman.
5 Web Inspector: JavaScript Error in DOMAgent.js:375 (_attributesUpdated)
6 https://bugs.webkit.org/show_bug.cgi?id=33915
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
13 (WebCore::Element::setAttribute): Checked for case where styleAttr is being synchronized.
15 2010-01-22 Eric Carlson <eric.carlson@apple.com>
17 Reviewed by Simon Fraser.
19 Update r53711 for GraphicsLayer method rename.
21 * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
22 (WebCore::MediaPlayerPrivate::createLayerForMovie): Rename from change setContentsToVideo.
24 2010-01-22 Jian Li <jianli@chromium.org>
26 Reviewed by Darin Adler.
28 Add BlobConstructor to DOMWindow.
29 https://bugs.webkit.org/show_bug.cgi?id=33982
33 2010-01-22 Brian Weinstein <bweinstein@apple.com>
35 Rubber-stamped by Adam Roben.
37 Commit files that were supposed to be part of r53696, but weren't
40 * English.lproj/localizedStrings.js:
41 * manual-tests/debugger-caught-uncaught-exceptions.html: Added.
43 2010-01-22 Peter Kasting <pkasting@google.com>
45 Reviewed by David Hyatt.
47 When scrolling by page, hold back 1/8th of the visible size instead of
49 https://bugs.webkit.org/show_bug.cgi?id=32595
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):
62 2010-01-22 Peter Kasting <pkasting@google.com>
64 Not reviewed, backout.
66 Back out r52673, which caused several regressions.
67 https://bugs.webkit.org/show_bug.cgi?id=32533
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:
96 2010-01-22 Dan Bernstein <mitz@apple.com>
98 Rubber-stamped by Darin Adler.
100 Revert r53693 because it broke scrolling of pages with fixed elements on
103 * page/FrameView.cpp:
105 * platform/ScrollView.cpp:
106 (WebCore::ScrollView::scrollContents):
107 * platform/ScrollView.h:
108 * rendering/RenderObject.cpp:
109 (WebCore::RenderObject::styleWillChange):
110 (WebCore::RenderObject::destroy):
112 2010-01-22 Alexey Proskuryakov <ap@apple.com>
114 Reviewed by Darin Adler.
116 https://bugs.webkit.org/show_bug.cgi?id=34008
117 Assertion failure in KURL::setProtocol when running DOM Fuzzer
119 Test: fast/dom/Window/invalid-protocol.html
121 * bindings/js/JSLocationCustom.cpp: (WebCore::JSLocation::setProtocol): Raise an exception
122 if KURL::setProtocol fails.
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.
129 * loader/FrameLoader.cpp: (WebCore::FrameLoader::iconURL): Assert that setting protocol
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.
136 * platform/KURL.h: isValidProtocol() is now static in KURL.cpp, it's only used in setProtocol().
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.
143 * websockets/WebSocketHandshake.cpp: (WebCore::WebSocketHandshake::httpURLForAuthenticationAndCookies):
144 Assert that setting protocol succeeded.
146 2010-01-22 Eric Carlson <eric.carlson@apple.com>
148 Reviewed by Adam Roben.
150 <rdar://problem/7373568>
151 https://bugs.webkit.org/show_bug.cgi?id=34007
152 Implement hardware acceleration of video compositing on Windows
154 Internally we still have QuickTime render to a bitmap, but frames are then composited
155 with the page using an accelerated renderer.
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
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
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):
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:
202 2010-01-21 Jeremy Orlow <jorlow@chromium.org>
204 Reviewed by Darin Fisher.
206 The Chromium WebKit API needs to expose storage event related data
207 https://bugs.webkit.org/show_bug.cgi?id=33985
209 This change is not visible to layoutTests/web pages.
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:
218 2010-01-22 Adele Peterson <adele@apple.com>
220 Reviewed by Dan Bernstein.
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
225 Test: fast/css/pseudo-invalid-novalidate-001.html
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.
231 2010-01-22 Steve Falkenburg <sfalken@apple.com>
233 Reviewed by Dan Bernstein.
235 Crash in fast/dom/Window/window-properties if Geolocation enabled
236 https://bugs.webkit.org/show_bug.cgi?id=34013
238 Add null check to fix Geolocation crash in fast/dom/Window/window-properties.
240 * page/Geolocation.cpp:
241 (WebCore::createGeoposition):
243 2010-01-22 Kent Hansen <kent.hansen@nokia.com>
245 Reviewed by Darin Adler.
247 Object.getOwnPropertyDescriptor(window) returns descriptors for properties in the prototype chain
248 https://bugs.webkit.org/show_bug.cgi?id=33948
250 Even though prototype properties are proxied by JSDOMWindow::getOwnPropertySlot(),
251 that proxying should not be performed by JSDOMWindow::getOwnPropertyDescriptor().
253 This makes getOwnPropertyDescriptor() consistent with getOwnPropertyNames().
255 Test: fast/dom/Window/window-property-descriptors.html
257 * bindings/js/JSDOMWindowCustom.cpp:
258 (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
260 2010-01-22 Girish Ramakrishnan <girish@forwardbias.in>
262 Reviewed by Simon Hausmann.
264 [Qt] Save the QWebPageClient instead of the ownerWidget in QtAbstractWebPopup
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.
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):
285 2010-01-22 Simon Hausmann <simon.hausmann@nokia.com>
287 Unreviewed Qt "build" fix.
289 * WebCore.pro: Fix warning about missing header file that isn't present anymore.
291 2010-01-22 Brian Weinstein <bweinstein@apple.com>
293 Reviewed by Timothy Hatcher.
295 Web Inspector: Caught exceptions still pause the debugger.
296 <https://bugs.webkit.org/show_bug.cgi?id=28622>.
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).
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.
307 Added a manual test, manual-tests/debugger-caught-uncaught-exceptions.html, that
308 generates caught and uncaught exceptions.
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.
336 2010-01-22 Ben Murdoch <benm@google.com>
338 Reviewed by Eric Seidel.
340 [Android] Android platform specific PlatformTouchEvent and PlatformTouchPoint implementations are not upstream.
341 https://bugs.webkit.org/show_bug.cgi?id=33719
343 Add the Android specific files and update the Android makefile.
345 No new tests as this is all Android-specific code.
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.
355 2010-01-22 Benjamin Poulain <benjamin.poulain@nokia.com>
357 Reviewed by Kenneth Rohde Christiansen.
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
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.
366 * page/FrameView.cpp:
367 (WebCore::FrameView::registerFixedPositionedObject):
368 (WebCore::FrameView::unregisterFixedPositionedObject):
369 (WebCore::FrameView::scrollContentsFastPath):
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):
379 2010-01-22 Anton Muhin <antonm@chromium.org>
381 Reviewed by Eric Seidel.
383 Adding ScriptWrappable into WebCore.
384 This allows to associate custom information when Node
385 gets wrapped into JavaScript wrapper.
387 [v8, dom] Add a pointer field to C++ Node class
388 https://bugs.webkit.org/show_bug.cgi?id=32430
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):
403 2010-01-22 Yury Semikhatsky <yurys@chromium.org>
405 Reviewed by Pavel Feldman.
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.
411 https://bugs.webkit.org/show_bug.cgi?id=28622
413 * inspector/InspectorBackend.h:
414 (WebCore::InspectorBackend::dispatchOnInjectedScript):
416 2010-01-22 Kwang Yul Seo <skyul@company100.net>
418 Reviewed by Dmitry Titov.
420 ENABLE(DATABASE) guard is missing in ScriptExecutionContext::~ScriptExecutionContext
421 https://bugs.webkit.org/show_bug.cgi?id=33990
423 Add missing ENABLE(DATABASE) guard.
425 * dom/ScriptExecutionContext.cpp:
426 (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
428 2010-01-22 Xan Lopez <xlopez@igalia.com>
430 Reviewed by Gustavo Noronha.
432 [GTK] GObject DOM bindings
433 https://bugs.webkit.org/show_bug.cgi?id=33590
435 * bindings/scripts/generate-bindings.pl:
437 2010-01-22 Xan Lopez <xlopez@igalia.com>
439 Reviewed by Gustavo Noronha.
441 [GTK] GObject DOM bindings
442 https://bugs.webkit.org/show_bug.cgi?id=33590
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.
450 2010-01-22 Dan Bernstein <mitz@apple.com>
452 Reviewed by Darin Adler.
454 <rdar://problem/7568696> Zoom applied to embedded SVG incorrectly
455 https://bugs.webkit.org/show_bug.cgi?id=33988
457 Test: svg/custom/text-zoom.xhtml
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.
467 2010-01-21 Adam Barth <abarth@webkit.org>
469 Reviewed by Eric Seidel.
471 [chromium] Add allowPlugins callback to allow per-site enabling of plugins
472 https://bugs.webkit.org/show_bug.cgi?id=33974
474 Add a callback into the FrameLoaderClient to let the embedder enable or
475 disable plugins on a per-site basis.
477 * loader/FrameLoader.cpp:
478 (WebCore::FrameLoader::requestObject):
479 * loader/FrameLoaderClient.h:
480 (WebCore::FrameLoaderClient::allowPlugins):
482 2010-01-21 Tony Chang <tony@chromium.org>
484 Reviewed by Darin Adler.
486 https://bugs.webkit.org/show_bug.cgi?id=25501
487 Remove empty font tags when applying a style to a content editable
490 Test: editing/execCommand/change-font.html
492 * editing/ApplyStyleCommand.cpp:
493 (WebCore::isEmptyFontTag):
495 2010-01-21 Joe Mason <jmason@rim.com>
497 Reviewed by Darin Adler.
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
502 * platform/graphics/filters/FEComponentTransfer.cpp:
505 2010-01-21 Andrei Popescu <andreip@google.com>
507 Reviewed by David Levin.
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
514 Add "static NPObject* pluginScriptableObject(Widget*);" method
516 Include PlatformBridge.h from ScriptController.cpp.
518 No new tests, just platform code.
520 * bindings/v8/ScriptController.cpp:
521 (WebCore::ScriptController::createScriptInstanceForWidget):
522 * platform/android/PlatformBridge.h:
524 2010-01-21 Brady Eidson <beidson@apple.com>
526 Reviewed by Maciej Stachowiak.
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
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.
536 The change in loading behavior is well covered via modifications to previous tests.
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.
542 2010-01-21 Jakub Wieczorek <faw217@gmail.com>
544 Reviewed by Tor Arne Vestbø.
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
549 The change made in r38223 should not be limited to Qt < 4.5 only.
551 * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
552 (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
554 2010-01-21 Kent Tamura <tkent@chromium.org>
556 Reviewed by Darin Adler.
558 HTMLInputElement::valueAsDate setter support for type=datetime.
559 https://bugs.webkit.org/show_bug.cgi?id=33939
561 Introduce ISODateTime::setMillisecondsSinceEpochForDateTime() and add
562 DateTime type support to ISODateTime::toString().
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:
578 2010-01-21 Geoffrey Garen <ggaren@apple.com>
580 Reviewed by Sam Weinig.
582 Fixed <rdar://problem/7562574> ASSERT in WebCore::removeWrapper() at the
583 end of run-webkit-tests
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.
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.
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.
597 * bindings/js/JSDOMBinding.cpp:
598 (WebCore::willCacheWrapper):
599 (WebCore::didUncacheWrapper): New names for these functions to help
600 explain what they track.
602 (WebCore::DOMWrapperWorld::~DOMWrapperWorld): Don't claim to uncache
603 all the wrappers in the world; we're deleting the cache, not managing its
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.
615 2010-01-21 Nikolas Zimmermann <nzimmermann@rim.com>
617 Reviewed by Sam Weinig.
619 SVG JS bindings "context" pointer needs to move onto binding impls
620 https://bugs.webkit.org/show_bug.cgi?id=27243
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.
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.
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.
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.
680 2010-01-21 Kevin Ollivier <kevino@theolliviers.com>
682 Build fix, add missing header.
684 * dom/ScriptExecutionContext.cpp:
686 2010-01-21 Simon Fraser <simon.fraser@apple.com>
688 Reviewed by Dan Bernstein.
690 -webkit-mask-box-image draws a box while loading
691 https://bugs.webkit.org/show_bug.cgi?id=33979
692 <rdar://problem/7378662>
694 Don't render masked elements until the mask images are fully loaded.
696 Test: http/tests/misc/slow-loading-mask.html
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.
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.
708 2010-01-21 Darin Adler <darin@apple.com>
710 Reviewed by Mark Rowe.
712 REGRESSION (r52795): New message created in response to mailto: URL has random character in message body
713 rdar://problem/7565902
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.
718 * platform/cf/SharedBufferCF.cpp:
719 (WebCore::SharedBuffer::SharedBuffer): Initialize m_size to 0 as in the other constructors.
721 2010-01-21 Enrica Casucci <enrica@apple.com>
723 Reviewed by Darin Adler.
725 Script tags are copied and pasted, making cross-domain attacks possible.
726 https://bugs.webkit.org/show_bug.cgi?id=33970
728 Tests: editing/pasteboard/paste-noscript-svg.html
729 editing/pasteboard/paste-visible-script.html
731 We remove the content and the attributes of every script tag before
732 pasting into the destination.
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:
745 2010-01-21 Nikolas Zimmermann <nzimmermann@rim.com>
747 Reviewed by Dirk Schulze.
749 <use> with % lengths does not update on window resize
750 https://bugs.webkit.org/show_bug.cgi?id=14639
752 appendChild broken for symbol-use
753 https://bugs.webkit.org/show_bug.cgi?id=24802
755 Test: svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml
756 svg/custom/svg/custom/relative-sized-use-on-symbol.xhtml
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.
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.
766 The combination of all the last <use> patches finally fixes the peepo.co.uk website, which was broken by several bugs for years.
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:
780 2010-01-21 Alexey Proskuryakov <ap@apple.com>
782 Reviewed by Darin Adler.
784 https://bugs.webkit.org/show_bug.cgi?id=33972
785 Assertion failure in FrameLoader::checkLoadComplete()
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.
791 * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopAllLoaders): Stop the check timer, we
792 don't need it after aborting load.
794 2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
796 Reviewed by Dave Hyatt.
800 * bindings/js/SerializedScriptValue.cpp: path of JSLock.h fixed.
802 2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
804 Unreviewed buildfix after r53644.
806 * platform/Scrollbar.cpp:
807 (WebCore::Scrollbar::scroll): missing HAVE(ACCESSIBILITY) guard added.
809 2010-01-21 Darin Fisher <darin@chromium.org>
811 Reviewed by David Levin.
813 Unnecessary call to HistoryItem::targetItem in HistoryController::pushState
814 https://bugs.webkit.org/show_bug.cgi?id=33969
816 * loader/HistoryController.cpp:
817 (WebCore::HistoryController::pushState): Remove unnecessary code.
819 2010-01-21 Dmitry Titov <dimich@chromium.org>
821 Not reviewed, Chromium build fix. Add AccessibilityScrollbar.h and .cpp to WebCore.gypi
825 2010-01-21 Albert J. Wong <ajwong@chromium.org>
827 [chromium] Unreviewed build fix.
829 Fix possible use of initialized variable warning in release mode.
831 * bindings/v8/SerializedScriptValue.cpp:
832 (WebCore::ZigZag::Deserializer::doDeserialize):
834 2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
836 [Qt] Unreviewed buildfix after r53644.
838 * WebCore.pro: accessibility/AccessibilityScrollbar.cpp and accessibility/AccessibilityScrollbar.h added.
840 2010-01-21 Dave Hyatt <hyatt@apple.com>
842 Reviewed by Oliver Hunt.
844 Make sure to do a JSLock before deserialization of script values, since they can heap allocate.
846 * bindings/js/SerializedScriptValue.cpp:
847 (WebCore::SerializedScriptValueData::deserialize):
849 2010-01-21 Beth Dakin <bdakin@apple.com>
851 Reviewed by Oliver Hunt.
853 Fix for https://bugs.webkit.org/show_bug.cgi?id=33923 REGRESSION
854 (Safari 4): AXValueChanged no longer sent for text area scrollbars
856 <rdar://problem/6942686>
858 New class AccessibilityScrollbar inherits directly from
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):
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:
881 When AX is enabled, getOrCreate an AccessibilityScrollbar and send
883 * platform/Scrollbar.cpp:
884 (WebCore::Scrollbar::scroll):
888 * WebCore.vcproj/WebCore.vcproj:
889 * WebCore.xcodeproj/project.pbxproj:
890 * WebCoreSources.bkl:
892 2010-01-21 Eric Uhrhane <ericu@chromium.org>
894 Reviewed by Dmitry Titov.
896 Add changes missing from r53595, without which Chromium has no database.
898 https://bugs.webkit.org/show_bug.cgi?id=33966
900 No new tests - fixes database layout tests in Chromium.
902 * bindings/v8/RuntimeEnabledFeatures.cpp:
903 * bindings/v8/RuntimeEnabledFeatures.h:
905 2010-01-21 Jakob Petsovits <jpetsovits@rim.com>
907 Reviewed by Adam Treat.
909 Don't call vgGetError()/eglGetError() repeatedly
910 https://bugs.webkit.org/show_bug.cgi?id=33959
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.
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
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().
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:
942 2010-01-20 Simon Fraser <simon.fraser@apple.com>
944 Reviewed by Dave Hyatt.
946 Hit testing on composited plugins is broken
947 https://bugs.webkit.org/show_bug.cgi?id=33927
948 <rdar://problem/7559069>
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.
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.
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.
961 Test: plugins/mouse-events-fixedpos.html
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.
967 * platform/graphics/GraphicsContext.h:
968 (WebCore::GraphicsContext::translate): Add a translate() convenience method that takes a FloatSize.
970 * platform/graphics/IntSize.h:
971 (WebCore::IntSize::isZero): Add a convenience method for testing for a zero size.
973 * platform/mac/WidgetMac.mm:
974 (WebCore::Widget::paint): Adjust a comment.
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.
980 2010-01-21 Andrei Popescu <andreip@google.com>
982 Reviewed by David Levin.
984 [Android] bindings/v8/NPV8Object.cpp does not compile on Android
985 https://bugs.webkit.org/show_bug.cgi?id=33608
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.
992 No new tests, fixing the build.
994 * bindings/v8/NPV8Object.cpp:
996 * bindings/v8/NPV8Object.h:
997 * platform/android/PlatformBridge.h:
999 2010-01-21 Andrei Popescu <andreip@google.com>
1001 Reviewed by David Levin.
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
1006 No new tests needed, this is just to allow other methods to call ChromiumBridge
1007 using the new 'PlatformBridge' name.
1009 * platform/chromium/PlatformBridge.h: Added.
1011 2010-01-21 Csaba Osztrogonác <ossy@webkit.org>
1013 [Qt] Unreviewed buildfix after r53625.
1015 Cleanup MediaPlayer and MediaPlayerPrivateInterface to remove dead methods
1016 https://bugs.webkit.org/show_bug.cgi?id=30106
1018 * platform/qt/RenderThemeQt.cpp:
1019 (WebCore::RenderThemeQt::paintMediaSliderTrack):
1021 2010-01-21 Andrei Popescu <andreip@google.com>
1023 Reviewed by David Levin.
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
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.
1032 No new tests needed, functionality not changed.
1034 * bindings/v8/V8DOMWrapper.cpp:
1035 (WebCore::V8DOMWrapper::getTemplate):
1036 * bindings/v8/V8DOMWrapper.h:
1038 2010-01-21 Eric Carlson <eric.carlson@apple.com>
1040 Reviewed by Darin Adler.
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
1046 Test: media/adopt-node-crash.html
1048 * html/HTMLMediaElement.cpp:
1049 (WebCore::HTMLMediaElement::willMoveToNewOwnerDocument): Unregister for
1051 (WebCore::HTMLMediaElement::didMoveToNewOwnerDocument): Register for
1053 * html/HTMLMediaElement.h:
1055 2010-01-21 Adam Roben <aroben@apple.com>
1057 More Windows build fixing
1059 * WebCore.vcproj/WebCore.vcproj: Copy bridge/jsc in the post-build
1060 event of all configurations, not just Debug.
1062 2010-01-21 Thiago Macieira <thiago.macieira@nokia.com>
1064 Reviewed by Simon Hausmann.
1066 [Qt] Fix incorrect dependency to QtXmlPatterns in generated include/QtWebKit/QtWebKit header
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.
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.
1074 2010-01-21 Steve Block <steveblock@google.com>
1076 Unreviewed build fix.
1078 Copy BridgeJSC.h to generated headers on Windows
1080 No new tests, build fix only.
1082 * WebCore.vcproj/WebCore.vcproj:
1084 2010-01-21 Eric Carlson <eric.carlson@apple.com>
1086 Reviewed by Darin Adler.
1088 Cleanup MediaPlayer and MediaPlayerPrivateInterface to remove dead methods
1089 https://bugs.webkit.org/show_bug.cgi?id=30106
1091 No new tests, only dead code was removed.
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:
1109 2010-01-21 Iain Campbell <iain.campbell@accenture.com>
1111 Reviewed by Simon Hausmann.
1113 [Qt] Simplify the qmake code for freezing QtWebKit on Symbian.
1117 2010-01-21 Steve Block <steveblock@google.com>
1119 Unreviewed speculative build fix for Windows.
1121 Adds missing include path for JSCBridge.h on Windows, added in http://trac.webkit.org/changeset/53620
1123 No new tests, build fix only.
1125 * WebCore.vcproj/WebCoreCommon.vsprops:
1127 2010-01-21 Steve Block <steveblock@google.com>
1129 Unreviewed build fix.
1131 Adds missing include path for JSCBridge.h, added in http://trac.webkit.org/changeset/53620
1133 No new tests, build fix only.
1137 * WebCore.vcproj/WebCore.vcproj:
1138 * WebCore.xcodeproj/project.pbxproj:
1140 2010-01-21 Steve Block <steveblock@google.com>
1142 Reviewed by David Levin.
1144 Move bridge interfaces Field, Class, Instance and Array from Bridge to BridgeJSC
1145 https://bugs.webkit.org/show_bug.cgi?id=33589
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.
1150 No new tests, refactoring only.
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.
1163 2010-01-21 Steve Block <steveblock@google.com>
1165 Reviewed by David Levin.
1167 Fixes style in WebCore/bridge/jni/JNIBridge
1168 https://bugs.webkit.org/show_bug.cgi?id=33914
1170 No new tests, style fixes only.
1172 * bridge/jni/JNIBridge.cpp:
1173 * bridge/jni/JNIBridge.h:
1175 2010-01-13 Philippe Normand <pnormand@igalia.com>
1177 Reviewed by Oliver Hunt.
1179 [GTK] handle media redirections
1180 https://bugs.webkit.org/show_bug.cgi?id=33539
1182 Media redirections support.
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):
1193 2010-01-21 No'am Rosenthal <noam.rosenthal@nokia.com>
1195 Reviewed by Antti Koivisto.
1197 [Qt] Implement GraphicsLayer for accelerated layer compositing
1198 https://bugs.webkit.org/show_bug.cgi?id=33514
1200 No new tests: tests in LayoutTests/compositing are now relevant for
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
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
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
1273 (WebCore::AnimationQtBase::AnimationQtBase): base class for Qt-based
1274 Webcore-initiated animations
1275 (WebCore::AnimationQtBase::updateState): notify when an animation
1277 (WebCore::AnimationQtBase::duration): reimp QAbstractAnimation
1278 (WebCore::AnimationQt:::AnimationQtBase):
1279 (WebCore::AnimationQt::updateCurrentTime): realize keyframes from
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
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
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
1304 2010-01-21 No'am Rosenthal <noam.rosenthal@nokia.com>
1306 Reviewed by Simon Hausmann.
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
1314 https://bugs.webkit.org/show_bug.cgi?id=32461
1316 Tests are in WebKit/qt/tests/hybridPixmap
1319 * bridge/qt/qt_pixmapruntime.cpp: Added.
1320 (JSC::Bindings::QtPixmapWidthField::name): "width"
1321 (JSC::Bindings::QtPixmapWidthField::valueFromInstance): width of
1323 (JSC::Bindings::QtPixmapWidthField::setValueToInstance): nothing
1324 (JSC::Bindings::QtPixmapHeightField::name): "height"
1325 (JSC::Bindings::QtPixmapHeightField::valueFromInstance): height of
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
1335 (JSC::Bindings::QtPixmapToStringMethod::name): "toString"
1336 (JSC::Bindings::QtPixmapToStringMethod::invoke): [Qt Native Pixmap
1339 (JSC::Bindings::QtPixmapRuntimeObjectImp::createStructure):
1340 runtime-object broilerplate
1341 (JSC::Bindings::QtPixmapRuntimeObjectImp::classInfo): ditto
1342 (JSC::Bindings::QtPixmapRuntimeObjectImp::QtPixmapRuntimeObjectImp):
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,
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
1374 2010-01-21 Luiz Agostini <luiz.agostini@openbossa.org>
1376 Reviewed by Kenneth Rohde Christiansen.
1378 [Qt] Custom select popups.
1379 https://bugs.webkit.org/show_bug.cgi?id=33418
1381 Optimization of the WebCore support to combobox popup delegate.
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):
1399 2010-01-20 Adam Barth <abarth@webkit.org>
1401 Reviewed by Darin Adler.
1403 Stylesheet href property shows redirected URL unlike other browsers
1404 https://bugs.webkit.org/show_bug.cgi?id=33683
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.
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.
1417 Test: http/tests/security/stylesheet-href-redirect.html
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
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):
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.
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):
1489 2010-01-20 Kwang Yul Seo <skyul@company100.net>
1491 Reviewed by Alexey Proskuryakov.
1493 Use xmlStrdup instead of strdup for consistency in Libxml2.
1494 https://bugs.webkit.org/show_bug.cgi?id=33935
1496 Remove the direct use of strdup.
1498 * dom/XMLTokenizerLibxml2.cpp:
1499 (WebCore::PendingCallbacks::appendErrorCallback):
1500 (WebCore::PendingCallbacks::):
1501 (WebCore::XMLTokenizer::error):
1503 2010-01-20 Oliver Hunt <oliver@apple.com>
1505 Reviewed by Dan Bernstein.
1507 Insufficient repaint issues with html embedded in foreignObject
1508 https://bugs.webkit.org/show_bug.cgi?id=16318
1510 Final part of fix -- now we render the selection rect of list
1511 markers in a transformed context.
1513 * rendering/RenderListMarker.cpp:
1514 (WebCore::RenderListMarker::localSelectionRect):
1515 (WebCore::RenderListMarker::paint):
1516 * rendering/RenderListMarker.h:
1518 2010-01-20 Daniel Bates <dbates@webkit.org>
1520 No review, rolling out 53591.
1521 http://trac.webkit.org/changeset/53591
1522 https://bugs.webkit.org/show_bug.cgi?id=29564
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
1529 * platform/qt/RenderThemeQt.cpp:
1530 (WebCore::RenderThemeQt::adjustButtonStyle):
1532 2010-01-20 Stephen White <senorblanco@chromium.org>
1534 Reviewed by David Levin.
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.
1541 https://bugs.webkit.org/show_bug.cgi?id=33908
1542 Exercised by many layout tests.
1544 * platform/graphics/skia/GraphicsContextSkia.cpp:
1546 2010-01-20 Kent Tamura <tkent@chromium.org>
1548 Reviewed by Darin Adler.
1550 HTMLInputElement::valueAsDate setter support for type=date.
1551 https://bugs.webkit.org/show_bug.cgi?id=33911
1553 Introduce ISODateTime::setMillisecondsSinceEpochForDate() and add Date
1554 type support to ISODateTime::toString().
1556 * html/HTMLInputElement.cpp:
1557 (WebCore::HTMLInputElement::setValueAsDate):
1558 * html/ISODateTime.cpp:
1559 (WebCore::ISODateTime::setMillisecondsSinceEpochForDate):
1560 (WebCore::ISODateTime::toString):
1561 * html/ISODateTime.h:
1563 2010-01-20 Ben Murdoch <benm@google.com>
1565 Reviewed by Simon Hausmann.
1567 Touch Events are not sent to iframes
1568 https://bugs.webkit.org/show_bug.cgi?id=33894
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.
1572 Test: fast/events/touch/touch-inside-iframe.html
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.
1577 2010-01-20 Michael Nordman <michaeln@google.com>
1579 Reviewed by Alexey Proskuryakov.
1581 Remove an assertion that is not valid in some detached iframes cases.
1582 https://bugs.webkit.org/show_bug.cgi?id=33827
1584 Test: http/tests/appcache/detached-iframe.html
1586 * loader/appcache/DOMApplicationCache.cpp:
1587 (WebCore::DOMApplicationCache::DOMApplicationCache):
1589 2010-01-20 Eric Uhrhane <ericu@chromium.org>
1591 Reviewed by Dmitry Titov.
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:
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
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
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]
1622 https://bugs.webkit.org/show_bug.cgi?id=22725
1624 No new tests; in a future patch I'll add JSC and V8 bindings and new
1625 layout tests to exercise them.
1627 * bindings/v8/custom/V8DOMWindowCustom.cpp:
1628 (WebCore::V8DOMWindow::OpenDatabaseEnabled):
1630 (WebCore::Document::Document):
1631 (WebCore::Document::~Document):
1632 (WebCore::Document::isDatabaseReadOnly):
1633 (WebCore::Document::databaseExceededQuota):
1634 (WebCore::Document::isContextThread):
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):
1732 2010-01-20 Fumitoshi Ukai <ukai@chromium.org>
1734 Reviewed by Alexey Proskuryakov.
1736 WebSocket: Request-URI should not be empty when no tralling slash in host
1737 https://bugs.webkit.org/show_bug.cgi?id=33689
1739 Test: websocket/tests/url-no-trailing-slash.html
1741 * websockets/WebSocketHandshake.cpp:
1742 (WebCore::resourceName):
1744 2010-01-20 Daniel Bates <dbates@webkit.org>
1746 Reviewed by Tor Arne Vestbø.
1748 https://bugs.webkit.org/show_bug.cgi?id=29564
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
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.
1760 Test: fast/css/button-height.html
1762 * platform/qt/RenderThemeQt.cpp:
1763 (WebCore::RenderThemeQt::RenderThemeQt):
1764 (WebCore::RenderThemeQt::adjustButtonStyle):
1766 2010-01-20 Brady Eidson <beidson@apple.com>
1768 Reviewed by Sam Weinig.
1770 Assertion failure calling history.pushState within popstate event handler.
1771 https://bugs.webkit.org/show_bug.cgi?id=33830
1773 Test: fast/loader/stateobjects/pushstate-within-popstate-handler-assert.html
1775 * loader/FrameLoader.cpp:
1776 (WebCore::FrameLoader::navigateWithinDocument): Remove the ASSERT and invalid part of the comment.
1778 2010-01-20 Nikolas Zimmermann <nzimmermann@rim.com>
1780 Reviewed by Oliver Hunt.
1782 Crash on dispatching SVG mouse events
1783 https://bugs.webkit.org/show_bug.cgi?id=33841
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.
1790 Tests: manual-tests/use-crash-on-mouse-hover.svg
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.
1796 2010-01-20 Ilya Tikhonovsky <loislo@chromium.org>
1798 Reviewed by Pavel Feldman.
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
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):
1812 2010-01-20 Alexey Proskuryakov <ap@apple.com>
1814 Reviewed by Sam Weinig.
1816 https://bugs.webkit.org/show_bug.cgi?id=33930
1817 Crash in JSDOMWindowBase::crossDomainAccessErrorMessage when accessing a detached sandboxed frame
1819 Test: http/tests/security/detached-sandboxed-frame-access.html
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.
1826 2010-01-20 Vitaly Repeshko <vitalyr@chromium.org>
1828 Reviewed by Pavel Feldman.
1830 [V8] Support SerializedScriptValue.
1831 https://bugs.webkit.org/show_bug.cgi?id=32920
1832 http://crbug.com/30620
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.
1838 * WebCore.gypi: Added SerializedScriptValue.cpp.
1839 * bindings/scripts/CodeGeneratorV8.pm: Removed conversion to string before using SerializedScriptValue.
1840 * bindings/v8/SerializedScriptValue.cpp: Added.
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):
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):
1921 2010-01-20 Steve Falkenburg <sfalken@apple.com>
1923 Reviewed by Sam Weinig.
1925 Fix crash in geolocation when observers change during iteration.
1927 * page/GeolocationController.cpp:
1928 (WebCore::GeolocationController::positionChanged): Copy observers to vector while iterating.
1929 (WebCore::GeolocationController::errorOccurred): Copy observers to vector while iterating.
1931 2010-01-19 Oliver Hunt <oliver@apple.com>
1933 Reviewed by Dan Bernstein.
1935 Insufficient repaint issues with html embedded in foreignObject
1936 https://bugs.webkit.org/show_bug.cgi?id=16318
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.
1942 * rendering/RenderBlock.cpp:
1943 (WebCore::RenderBlock::paintSelection):
1944 * rendering/RenderForeignObject.cpp:
1945 (WebCore::RenderForeignObject::mapLocalToContainer):
1946 * rendering/RenderForeignObject.h:
1948 2010-01-20 Gavin Barraclough <barraclough@apple.com>
1952 <rdar://problem/7557695> REGRESSION(r53445-r53449): Many new memory leaks (33867)
1954 Revert r53447, since this caused leaks.
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):
1975 2010-01-20 Jian Li <jianli@chromium.org>
1977 Reviewed by Dmitry Titov.
1979 Implement File and Blob interfaces as defined in File API spec.
1980 https://bugs.webkit.org/show_bug.cgi?id=32912
1982 * Android.derived.jscbindings.mk:
1983 * Android.derived.v8bindings.mk:
1985 * DerivedSources.cpp:
1986 * DerivedSources.make:
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:
2005 * bindings/v8/V8Index.cpp:
2006 * bindings/v8/V8Index.h:
2007 * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
2008 (WebCore::V8XMLHttpRequest::sendCallback):
2010 (WebCore::File::File):
2012 (WebCore::File::create):
2013 (WebCore::File::name):
2014 (WebCore::File::fileName):
2015 (WebCore::File::fileSize):
2017 * xml/XMLHttpRequest.cpp:
2018 (WebCore::XMLHttpRequest::send):
2019 * xml/XMLHttpRequest.h:
2021 2010-01-20 Chris Fleizach <cfleizach@apple.com>
2023 Reviewed by Beth Dakin.
2025 WAI-ARIA popup buttons spoken as simply 'button'
2026 https://bugs.webkit.org/show_bug.cgi?id=33922
2028 Test: platform/mac/accessibility/aria-popup.html
2030 * accessibility/AccessibilityRenderObject.cpp:
2031 (WebCore::AccessibilityRenderObject::actionElement):
2032 (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
2033 * html/HTMLAttributeNames.in:
2035 2010-01-19 David Levin <levin@chromium.org>
2037 Reviewed by Oliver Hunt.
2039 CrossThreadCopier needs to support ThreadSafeShared better.
2040 https://bugs.webkit.org/show_bug.cgi?id=33698
2042 Now the copier is able to handle types that derive from ThreadSafeShared.
2044 No change functionality so no new tests.
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.
2077 2010-01-20 Jon Honeycutt <jhoneycutt@apple.com>
2079 <rdar://problem/7086565> Crash in WebCore::PlugInView::dispatchNPEvent
2081 Reviewed by Sam Weinig.
2083 * plugins/PluginView.cpp:
2084 (WebCore::PluginView::handleEvent):
2085 Ref the PluginView to protect it from deletion while calling into the
2088 2010-01-20 Jon Honeycutt <jhoneycutt@apple.com>
2090 MSAA: accSelect() is not implemented
2092 https://bugs.webkit.org/show_bug.cgi?id=33918
2093 <rdar://problem/7436861>
2095 Reviewed by Darin Adler.
2097 Test: platform/win/accessibility/selection-and-focus.html
2099 * accessibility/AccessibilityMenuListOption.cpp:
2100 (WebCore::AccessibilityMenuListOption::setSelected):
2101 Return early if the object is not selectable.
2103 2010-01-20 Nikolas Zimmermann <nzimmermann@rim.com>
2105 Not reviewed. Fix chromium build, introduced a copy&paste error.
2107 * bindings/v8/ScriptEventListener.cpp:
2108 (WebCore::createAttributeEventListener):
2110 2010-01-20 Dan Bernstein <mitz@apple.com>
2112 Reviewed by Darin Adler.
2114 <rdar://problem/6579204> Exception thrown when opening a <select> pop-up that
2116 https://bugs.webkit.org/show_bug.cgi?id=23911
2118 * platform/mac/PopupMenuMac.mm:
2119 (WebCore::PopupMenu::populate): Use the (bold) system font if an NSFont cannot
2122 2010-01-19 Nikolas Zimmermann <nzimmermann@rim.com>
2124 Reviewed by Alexey Proskuryakov.
2126 svg/custom/use-instanceRoot-event-bubbling.xhtml is flakey
2127 https://bugs.webkit.org/show_bug.cgi?id=33835
2129 mouseEvent fires mutiple times in svg/custom/use-instanceRoot-as-event-target.xhtml
2130 https://bugs.webkit.org/show_bug.cgi?id=32519
2132 Test: svg/custom/use-instanceRoot-event-listener-liveness.xhtml
2134 Stabilize <use> scripting support - use tests are reliable now (tested using --repeach-each 50 --random -p)
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.
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.
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.
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):
2169 2010-01-20 Dmitry Titov <dimich@chromium.org>
2171 Reviewed by Darin Adler.
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.
2176 No new tests since no change in functionality.
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.
2181 2010-01-20 Oliver Hunt <oliver@apple.com>
2183 No review, rolling out r53561.
2184 http://trac.webkit.org/changeset/53561
2185 https://bugs.webkit.org/show_bug.cgi?id=16318
2187 broke selection repaint for transformed text in html
2189 * rendering/RenderBlock.cpp:
2190 (WebCore::RenderBlock::paintSelection):
2191 * rendering/RenderForeignObject.cpp:
2192 * rendering/RenderForeignObject.h:
2194 2010-01-19 Oliver Hunt <oliver@apple.com>
2196 Reviewed by Beth Dakin.
2198 Insufficient repaint issues with html embedded in foreignObject
2199 https://bugs.webkit.org/show_bug.cgi?id=16318
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.
2205 * rendering/RenderBlock.cpp:
2206 (WebCore::RenderBlock::paintSelection):
2207 * rendering/RenderForeignObject.cpp:
2208 (WebCore::RenderForeignObject::mapLocalToContainer):
2209 * rendering/RenderForeignObject.h:
2211 2010-01-20 Kevin Ollivier <kevino@theolliviers.com>
2213 Build fix for !ENABLE(SVG).
2215 * rendering/TrailingFloatsRootInlineBox.h:
2216 (WebCore::TrailingFloatsRootInlineBox::TrailingFloatsRootInlineBox):
2218 2010-01-20 David Levin <levin@chromium.org>
2220 No review, rolling out r53552.
2221 http://trac.webkit.org/changeset/53552
2222 https://bugs.webkit.org/show_bug.cgi?id=32554
2224 Caused lots of fast/profile test failures.
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:
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):
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):
2367 2010-01-20 Steve Block <steveblock@google.com>
2369 Reviewed by David Levin.
2371 Renames jni_runtime.[cpp|h] to JNIBridge.[cpp|h]
2372 https://bugs.webkit.org/show_bug.cgi?id=33899
2374 No new tests, refactoring only.
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
2389 2010-01-20 Alexey Proskuryakov <ap@apple.com>
2391 Reviewed by Simon Fraser.
2393 https://bugs.webkit.org/show_bug.cgi?id=33913
2394 Crash under Media::matchMedium in detached frame
2396 Also took the opportunity to fix JS bindings for the Media object.
2398 Test: fast/media/lifetime.html
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()).
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.
2411 * bindings/js/JSDOMWindowCustom.cpp:
2412 (WebCore::JSDOMWindow::markChildren):
2413 * page/DOMWindow.cpp:
2414 (WebCore::DOMWindow::clear):
2415 (WebCore::DOMWindow::media):
2417 (WebCore::DOMWindow::optionalMedia):
2418 Make sure there's only one Media object per window, and keep its wrapper alive.
2420 2010-01-20 Steve Falkenburg <sfalken@apple.com>
2422 Reviewed by Darin Adler and Adam Roben.
2424 Feature defines are difficult to maintain on Windows builds
2425 https://bugs.webkit.org/show_bug.cgi?id=33883
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.
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.
2440 2010-01-20 Yury Semikhatsky <yurys@chromium.org>
2442 Reviewed by Pavel Feldman.
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.
2448 https://bugs.webkit.org/show_bug.cgi?id=32554
2450 Test: inspector/console-log-before-inspector-open.html
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:
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):
2555 2010-01-20 Kent Tamura <tkent@chromium.org>
2557 Reviewed by Darin Adler.
2559 HTMLInputElement::valueAsDate setter support for type=time.
2560 https://bugs.webkit.org/show_bug.cgi?id=33825
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.
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::):
2579 2010-01-20 Csaba Osztrogonác <ossy@webkit.org>
2581 [Qt] Unreviewed buildfix for r53547.
2585 2010-01-20 Ben Murdoch <benm@google.com>
2587 Reviewed by Simon Hausmann.
2589 The touchcancel event is not supported.
2590 https://bugs.webkit.org/show_bug.cgi?id=33598
2592 This change adds support for the touchcancel event in WebCore and adds a test.
2594 Test: fast/events/touch/send-oncancel-event.html
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.
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.
2617 2010-01-20 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2619 Reviewed by Simon Hausmann.
2621 [Qt] Make extraCompilers for generated sources depend on their scripts
2623 * DerivedSources.pro:
2626 2010-01-20 Kent Tamura <tkent@chromium.org>
2628 Reviewed by Adam Barth.
2630 [Chromium][V8] Fix null pointer dereference in V8Proxy::retrieve().
2631 https://bugs.webkit.org/show_bug.cgi?id=33886
2633 This is equivalent to r53433, and fix a crash by
2634 LayoutTests/http/tests/appcache/destroyed-iframe.html.
2636 * bindings/v8/V8Proxy.cpp:
2637 (WebCore::V8Proxy::retrieve): Check if context is null.
2639 2010-01-20 Alexander Pavlov <apavlov@chromium.org>
2641 Reviewed by Timothy Hatcher.
2643 Optimize resize event handling for hidden views
2644 https://bugs.webkit.org/show_bug.cgi?id=33803
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):
2680 2010-01-20 Steve Block <steveblock@google.com>
2682 Reviewed by David Levin.
2684 Fixes style in WebCore/bridge/Bridge
2685 https://bugs.webkit.org/show_bug.cgi?id=33839
2687 No new tests, style fixes only.
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
2707 2010-01-20 Daniel Bates <dbates@webkit.org>
2709 Reviewed by Eric Seidel.
2711 https://bugs.webkit.org/show_bug.cgi?id=33885
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.
2717 No functionality was changed. So, no new tests.
2719 * bindings/js/JSWebGLRenderingContextCustom.cpp:
2720 (WebCore::dataFunctionf):
2721 (WebCore::dataFunctioni):
2722 (WebCore::dataFunctionMatrix):
2724 2010-01-19 Steve Block <steveblock@google.com>
2726 Reviewed by David Levin.
2728 Fixes style in WebCore/bridge/JNIUtility
2729 https://bugs.webkit.org/show_bug.cgi?id=33870
2731 No new tests, style fixes only.
2733 * bridge/jni/JNIUtility.cpp:
2734 * bridge/jni/JNIUtility.h:
2736 2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
2738 Reviewed by Tor Arne Vestbø.
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.
2745 2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
2747 Reviewed by Tor Arne Vestbø.
2749 [Qt] Make it possible to link with -no-undefined.
2751 * WebCore.pro: Add missing explicit dependency to libXrender due to the
2752 use of XRenderFindVisualFormat in the X11 plugin code.
2754 2010-01-20 Simon Hausmann <simon.hausmann@nokia.com>
2756 Reviewed by Tor Arne Vestbø.
2758 Add missing files to the build.
2762 2010-01-20 Shinichiro Hamaji <hamaji@chromium.org>
2764 Reviewed by Darin Fisher.
2766 [Chromium] computePageRectsForFrame seems to be unnecessary
2767 https://bugs.webkit.org/show_bug.cgi?id=33881
2769 * WebCore.gypi: Removed FrameChromium.h
2770 * page/chromium/FrameChromium.cpp: Removed computePageRectsForFrame.
2771 * page/chromium/FrameChromium.h: Removed.
2773 2010-01-20 Roland Steiner <rolandsteiner@chromium.org>
2775 Reviewed by Dan Bernstein.
2777 Bug 33266 - WebCore::InlineFlowBox::determineSpacingForFlowBoxes ReadAV@NULL (43c64e8abbda6766e5f5edbd254c2d57)
2778 (https://bugs.webkit.org/show_bug.cgi?id=33266)
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.
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
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):
2814 2010-01-19 Dan Bernstein <mitz@apple.com>
2816 Build fix after r53514
2818 * WebCore.base.exp: Removed threadGlobalData(), which was inlined in r53514.
2820 2010-01-19 Simon Fraser <simon.fraser@apple.com>
2822 Reviewed by Dan Bernstein.
2824 Avoid calling NSEqualRects() on the garbage rect obtained
2825 by calling -frame on a null view.
2827 * platform/mac/WidgetMac.mm:
2828 (WebCore::Widget::setFrameRect):
2830 2010-01-19 Maciej Stachowiak <mjs@apple.com>
2832 Unreviewed build fix.
2834 Remove currentWorld from the exports file again, since it is now inline.
2838 2010-01-19 Brian Weinstein <bweinstein@apple.com>
2840 Reviewed by Tim Hatcher.
2842 Part of <http://webkit.org/b/28622>.
2843 Caught exceptions still pause the debugger.
2845 Update JavaScriptDebugServer::exception to take a hasHandler parameter,
2846 so later we can differentiate between a caught and an uncaught exception.
2848 This just adds a new parameter, no behavior is changed.
2850 No change in functionality, so no tests.
2852 * inspector/JavaScriptDebugServer.cpp:
2853 (WebCore::JavaScriptDebugServer::exception):
2854 * inspector/JavaScriptDebugServer.h:
2856 2010-01-18 Maciej Stachowiak <mjs@apple.com>
2858 Reviewed by Adam Barth.
2860 Inline functions that are hot in DOM manipulation
2861 https://bugs.webkit.org/show_bug.cgi?id=33820
2863 (3% speedup on Dromaeo DOM Core tests)
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.
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
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
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).
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.
2908 2010-01-19 Jon Honeycutt <jhoneycutt@apple.com>
2912 * accessibility/chromium/AccessibilityObjectChromium.cpp:
2913 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2914 Call correct function.
2916 2010-01-17 Jon Honeycutt <jhoneycutt@apple.com>
2918 MSAA: The child <option> elements of a non-multiple <select> are not
2921 https://bugs.webkit.org/show_bug.cgi?id=33773
2922 <rdar://problem/7550556>
2924 Reviewed by Alice Liu.
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.
2932 * WebCore.vcproj/WebCore.vcproj:
2933 * WebCore.xcodeproj/project.pbxproj:
2934 Add new files to project.
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.
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.
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):
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):
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.
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):
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):
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):
3032 * accessibility/AccessibilityObject.cpp:
3033 (WebCore::AccessibilityObject::actionVerb):
3034 Add the menuListAction and menuListPopupAction verbs.
3036 * accessibility/AccessibilityObject.h:
3039 (WebCore::AccessibilityObject::isMenuList):
3041 (WebCore::AccessibilityObject::isMenuListHiddenList):
3043 (WebCore::AccessibilityObject::isMenuListOption):
3045 (WebCore::AccessibilityObject::isVisible):
3048 * accessibility/chromium/AccessibilityObjectChromium.cpp:
3049 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3050 Ignore the new object type.
3052 * accessibility/gtk/AccessibilityObjectAtk.cpp:
3053 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3056 * accessibility/mac/AccessibilityObjectMac.mm:
3057 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3060 * accessibility/qt/AccessibilityObjectQt.cpp:
3061 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3064 * accessibility/win/AccessibilityObjectWin.cpp:
3065 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3066 Allow the new object types.
3068 * accessibility/wx/AccessibilityObjectWx.cpp:
3069 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3070 Ignore the new object type.
3072 * accessibility/win/AccessibilityObjectWin.cpp:
3073 (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
3074 If the object is an AccessibilityMenuListHiddenList or
3075 AccessibilityMenuListOption, include it.
3077 * html/HTMLOptionElement.cpp:
3078 (WebCore::HTMLOptionElement::disabled):
3079 Call ownElementDisabled().
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.
3086 * platform/LocalizedStrings.h:
3087 Declare new localized string functions.
3089 * platform/gtk/LocalizedStringsGtk.cpp:
3090 (WebCore::AXMenuListPopupActionVerb):
3092 (WebCore::AXMenuListActionVerb):
3095 * platform/haiku/LocalizedStringsHaiku.cpp:
3096 (WebCore::AXMenuListPopupActionVerb):
3098 (WebCore::AXMenuListActionVerb):
3101 * platform/mac/LocalizedStringsMac.mm:
3102 (WebCore::AXMenuListPopupActionVerb):
3103 Call the view factory's method.
3104 (WebCore::AXMenuListActionVerb):
3107 * platform/qt/Localizations.cpp:
3108 (WebCore::AXMenuListPopupActionVerb):
3110 (WebCore::AXMenuListActionVerb):
3113 * platform/wx/LocalizedStringsWx.cpp:
3114 (WebCore::AXMenuListPopupActionVerb):
3116 (WebCore::AXMenuListActionVerb):
3119 2010-01-19 Simon Fraser <simon.fraser@apple.com>
3121 Reviewed by Dan Bernstein.
3123 Support reflections on WebGL
3124 https://bugs.webkit.org/show_bug.cgi?id=33754
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.
3129 Test: compositing/webgl/webgl-reflection.html
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.
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.
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.
3146 (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D): Set the layer owner for WebGL
3147 layers, because we need the didDisplay() callback.
3149 * platform/graphics/mac/WebLayer.mm:
3150 (-[WebLayer display]): didDisplay() takes a layer argument.
3151 * platform/graphics/mac/WebTiledLayer.mm:
3152 (-[WebTiledLayer display]): ditto.
3154 2010-01-19 Mark Rowe <mrowe@apple.com>
3156 Reviewed by Oliver Hunt.
3158 <rdar://problem/7555330> <http://webkit.org/b/33770> dataFunctionMatrix leaks the array allocated by toArray
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.
3164 * bindings/js/JSWebGLRenderingContextCustom.cpp:
3165 (WebCore::JSWebGLRenderingContext::texSubImage2D):
3166 (WebCore::toVector):
3167 (WebCore::dataFunctionf):
3168 (WebCore::dataFunctioni):
3169 (WebCore::dataFunctionMatrix):
3171 2010-01-19 Carol Szabo <carol.szabo@nokia.com>
3173 Reviewed by Darin Adler.
3175 Another crazy counters bug
3176 https://bugs.webkit.org/show_bug.cgi?id=11031
3178 This patch actually provides for counter updating when the style
3179 of a renderer changes.
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
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.
3195 2010-01-19 Gustavo Noronha Silva <gns@gnome.org>
3197 Unreviewed. Build fixes for make distcheck - missing files.
3201 2010-01-19 Alexey Proskuryakov <ap@apple.com>
3203 Reviewed by Oliver Hunt.
3205 https://bugs.webkit.org/show_bug.cgi?id=33850
3206 Attr.childNodes does not get updated after DOM mutations
3208 Test: fast/dom/Attr/child-nodes-cache.html
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.
3213 2010-01-19 John Sullivan <sullivan@apple.com>
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
3219 Reviewed by Darin Adler.
3221 No new tests. This just adds a couple of out parameters for the benefit of WebKit clients.
3224 Updated mangled signature for export.
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).
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):
3243 2010-01-19 Jakob Petsovits <jpetsovits@rim.com>
3245 Reviewed by Nikolas Zimmermann.
3247 [OpenVG] Add (EGL) surface/context management
3248 https://bugs.webkit.org/show_bug.cgi?id=33403
3250 The foundations for a new OpenVG port.
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.
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.
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):
3305 2010-01-19 Steve Block <steveblock@google.com>
3307 Reviewed by David Levin.
3309 Renames jni_utility and jni_utility_private to JNIUtility and JNIUtilityPrivate
3310 https://bugs.webkit.org/show_bug.cgi?id=33843
3312 No new tests, refactoring only.
3314 * Android.jscbindings.mk:
3315 * Android.v8bindings.mk:
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:
3338 2010-01-19 Simon Fraser <simon.fraser@apple.com>
3340 Reviewed by Dan Bernstein.
3342 Occasional crash when interacting with page with reflected WebGL
3343 https://bugs.webkit.org/show_bug.cgi?id=33863
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).
3349 Fix by changing requiresCompositingLayer() on a reflection layer to always give the
3350 same answer for a reflection and its original.
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.
3355 No new tests, because the crash depends on timing issues that are hard to reproduce in a test.
3357 * platform/graphics/GraphicsLayer.h:
3358 (WebCore::GraphicsLayer::replicaLayer): Make this public so we can use it in an assertion.
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.
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.
3370 2010-01-19 Simon Fraser <simon.fraser@apple.com>
3372 Reviewed by Dan Bernstein.
3374 Some composited reflections incorrectly positioned
3375 https://bugs.webkit.org/show_bug.cgi?id=33856
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.
3381 Tests: compositing/reflections/nested-reflection-transformed2.html
3382 compositing/reflections/reflection-positioning2.html
3384 * rendering/RenderLayerBacking.cpp:
3385 (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
3387 2010-01-19 Enrica Casucci <enrica@apple.com>
3389 Reviewed by Simon Fraser.
3391 REGRESSION: Infinite recursion in Position::getInlineBoxAndOffset()
3392 https://bugs.webkit.org/show_bug.cgi?id=33864
3393 <rdar://problem/7552959>
3395 Regression has been introduced by changeset 53085.
3396 The original fix had to be limited to editable content.
3398 Test: editing/selection/selection-applet.html
3401 (WebCore::Position::getInlineBoxAndOffset):
3403 2010-01-19 Kristian Amlie <kristian.amlie@nokia.com>
3405 Reviewed by Laszlo Gombos.
3407 [Qt] Fix qmake warning with qmake in Qt for Symbian
3408 https://bugs.webkit.org/show_bug.cgi?id=33786
3410 * WebCore.pro: Use QMAKE_LFLAGS instead of MMP_RULES.
3412 2010-01-19 Daniel Bates <dbates@rim.com>
3414 Reviewed by Darin Adler.
3416 https://bugs.webkit.org/show_bug.cgi?id=33851
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
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.
3427 Instead, it should return the rectangle whose dimensions include
3430 Also, removes some extra whitespace at the end of the lines.
3432 No tests included because we cannot test this using either DRT
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]).
3440 2010-01-19 Steve Block <steveblock@google.com>
3442 Reviewed by David Levin.
3444 Fixes style in WebCore/bridge/jni/jsc/JavaClassJSC
3445 https://bugs.webkit.org/show_bug.cgi?id=33819
3447 No new tests, style fixes only.
3449 * bridge/jni/jsc/JavaClassJSC.cpp: Modified.
3450 * bridge/jni/jsc/JavaClassJSC.h: Modified.
3452 2010-01-19 Jaime Yap <jaimeyap@google.com>
3454 Reviewed by Pavel Feldman.
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
3461 inspector/timeline-parse-html-expected.txt
3462 inspector/timeline-layout-expected.txt
3463 inspector/timeline-recalculate-styles-expected.txt
3465 https://bugs.webkit.org/show_bug.cgi?id=33853
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:
3505 2010-01-19 Joanmarie Diggs <joanmarie.diggs@gmail.com>
3507 Reviewed by Xan Lopez.
3509 https://bugs.webkit.org/show_bug.cgi?id=30883
3510 [Gtk] Implement AtkText for HTML elements which contain text
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.
3516 Adds a check in textForObject so that we don't double-add newlines
3519 * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3521 (getPangoLayoutForAtk):
3522 (webkit_accessible_text_get_text):
3524 2010-01-19 Eric Carlson <eric.carlson@apple.com>
3526 Reviewed by Adam Roben.
3528 error events don't fire if no <source> elements passed to media engine
3529 https://bugs.webkit.org/show_bug.cgi?id=33855
3531 Test: media/video-source-error-no-candidate.html
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.
3537 2010-01-19 Daniel Bates <dbates@webkit.org>
3539 Reviewed by Adam Roben.
3541 https://bugs.webkit.org/show_bug.cgi?id=33822
3543 REGRESSION(r53273): Fixes redefinition of XFORM error when building
3544 WebKit using Qt Windows with the MinGW compiler.
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.
3550 No functionality was changed. So, no new tests.
3552 * platform/graphics/transforms/TransformationMatrix.h:
3554 2010-01-19 Stephen White <senorblanco@chromium.org>
3556 Reviewed by Dimitri Glazkov.
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
3563 Will be covered by a new unit test in Chromium's test_shell_tests (when
3564 this is rolled into Chromium).
3566 https://bugs.webkit.org/show_bug.cgi?id=33844
3568 * platform/graphics/chromium/TransparencyWin.cpp:
3569 (WebCore::TransparencyWin::initializeNewContext):
3570 Early return when m_referenceBitmap or its pixels is NULL, leaving
3573 2010-01-19 Eric Carlson <eric.carlson@apple.com>
3575 Reviewed by Adam Roben.
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
3580 Test: media/video-source-none-supported.html
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.
3590 2010-01-19 Daniel Bates <dbates@rim.com>
3592 Reviewed by Adam Treat.
3594 https://bugs.webkit.org/show_bug.cgi?id=33408
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.
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.
3612 Note, this optimization is only enabled if the WebKit is built
3613 with FAST_MOBILE_SCROLLING enabled.
3615 Tests: fast/fast-mobile-scrolling/fixed-position-element.html
3616 fast/fast-mobile-scrolling/no-fixed-position-elements.html
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):
3624 2010-01-19 Dave Hyatt <hyatt@apple.com>
3626 Build bustage fix. Land modified WebCore.base.exp file that includes export of currentWorld().
3630 2010-01-19 Brady Eidson <beidson@apple.com>
3632 Reviewed by Alexey Proskuryakov.
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
3637 Test: fast/loader/stateobjects/state-api-on-detached-frame-crash.html
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().
3644 2010-01-19 Yury Semikhatsky <yurys@chromium.org>
3646 Reviewed by NOBODY (build fix).
3648 Revert r53467. Browser crashes on opening inspector if there
3649 are messages in console.
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:
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):
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):
3789 2010-01-19 Yury Semikhatsky <yurys@chromium.org>
3791 Reviewed by Pavel Feldman.
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.
3797 https://bugs.webkit.org/show_bug.cgi?id=32554
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:
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):
3900 2010-01-19 Steve Block <steveblock@google.com>
3902 Unreviewed build fix.
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]
3907 No new tests, build fix only.
3909 * WebCore.vcproj/WebCore.vcproj:
3911 2010-01-19 Steve Block <steveblock@google.com>
3913 Reviewed by Adam Barth.
3915 Renames WebCore/bridge/runtime.[cpp|h] to WebCore/bridge/Bridge.[cpp|h]
3916 https://bugs.webkit.org/show_bug.cgi?id=33801
3918 runtime.[cpp|h] contains general interface classes for use in the bridge,
3919 so Bridge is a more appropriate name than runtime.
3921 No new tests, renaming only.
3923 * Android.jscbindings.mk:
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:
3966 2010-01-19 Geoffrey Garen <ggaren@apple.com>
3968 Reviewed by Oliver Hunt.
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
3973 Test: fast/workers/worker-gc2.html
3975 * bindings/js/WorkerScriptController.cpp:
3976 (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
3977 ASSERTs that have moved to JavaScriptCore.
3979 2010-01-19 Gavin Barraclough <barraclough@apple.com>
3981 Reviewed by NOBODY (build fix).
3983 Reverting r53455, breaks 2 javascriptcore tests.
3985 * bindings/js/WorkerScriptController.cpp:
3986 (WebCore::WorkerScriptController::~WorkerScriptController):
3988 2010-01-18 Geoffrey Garen <ggaren@apple.com>
3990 Reviewed by Oliver Hunt.
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
3995 Test: fast/workers/worker-gc2.html
3997 * bindings/js/WorkerScriptController.cpp:
3998 (WebCore::WorkerScriptController::~WorkerScriptController): Removed some
3999 ASSERTs that have moved to JavaScriptCore.
4001 2010-01-18 Daniel Bates <dbates@webkit.org>
4003 Reviewed by Darin Adler.
4005 https://bugs.webkit.org/show_bug.cgi?id=33089
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>.
4010 Test: fast/lists/w3-css3-list-styles-alphabetic.html
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:
4032 * rendering/style/RenderStyleConstants.h:
4035 2010-01-18 Daniel Bates <dbates@webkit.org>
4037 Unreviewed, fix misspelling of the word maximum in comment.
4039 * html/HTMLInputElement.cpp:
4040 (WebCore::HTMLInputElement::maximum):
4042 2010-01-18 Dan Bernstein <mitz@apple.com>
4044 Rubber-stamped by Sam Weinig.
4046 <rdar://problem/7476957> REGRESSION (r49567): Business widget list does not line up: too tall due to line height rounding change
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):
4059 2010-01-18 Steve Block <steveblock@google.com>
4061 Reviewed by Adam Barth.
4063 Moves JSC-specific implementation of JavaString to a private implementation class.
4064 https://bugs.webkit.org/show_bug.cgi?id=33558
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.
4069 No new tests, refactoring only.
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):
4090 2010-01-18 Yuzo Fujishima <yuzo@google.com>
4092 Reviewed by Darin Adler.
4094 Skip an error after invalid blocks in a CSS expression.
4095 https://bugs.webkit.org/show_bug.cgi?id=33650
4099 2010-01-15 Gavin Barraclough <barraclough@apple.com>
4101 Reviewed by Darin Adler & Oliver Hunt.
4103 https://bugs.webkit.org/show_bug.cgi?id=33731
4104 Remove uses of PtrAndFlags from WebCore::StringImpl.
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
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):
4128 2010-01-18 Nikolas Zimmermann <nzimmermann@rim.com>
4130 Reviewed by Dirk Schulze.
4132 Rewrite SVG <use> support in a modern-fashion
4133 https://bugs.webkit.org/show_bug.cgi?id=33776
4135 Tests: svg/custom/relative-sized-deep-shadow-tree-content.xhtml
4136 svg/custom/relative-sized-shadow-tree-content.xhtml
4138 Fixes: svg/W3C-SVG-1.1/animate-elem-30-t.svg (animated circle sometimes takes wrong path)
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.
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.
4147 updateFromElement() is fired from SVGUseElement::attach() / recalcStyle(), as it's done for HTMLFormControlElement/HTMLMediaElement, thus
4148 lazily recloning the shadow tree if necessary.
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.
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.
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.
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):
4233 2010-01-18 Kent Tamura <tkent@chromium.org>
4235 Reviewed by Darin Adler.
4237 HTMLInputElement::valueAsDate setter support for type=month.
4238 https://bugs.webkit.org/show_bug.cgi?id=33021
4240 Introduce ISODateTime::setMillisecondsSinceEpochForMonth() and
4241 toString() for the Month type, and HTMLInputElement::setValueAsDate()
4244 * html/HTMLInputElement.cpp:
4245 (WebCore::HTMLInputElement::setValueAsDate):
4246 * html/ISODateTime.cpp: