1 2011-05-31 Andreas Kling <kling@webkit.org>
3 Reviewed by Antti Koivisto.
5 Canvas/JSC: Auto-generate overloads for setShadow()
6 https://bugs.webkit.org/show_bug.cgi?id=61786
8 Move CanvasRenderingContext2D.setShadow() to auto-generated JSC bindings.
10 There is a subtle difference to the previous behavior: invalid numbers of
11 arguments now raise TypeError instead of SyntaxError. This is in accordance
12 with Web IDL, and matches the existing V8 bindings.
14 Test: fast/canvas/canvas-overloads-setShadow.html
16 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
17 * html/canvas/CanvasRenderingContext2D.idl:
19 2011-05-31 Andreas Kling <kling@webkit.org>
21 Reviewed by Antti Koivisto.
23 Canvas/JSC: Auto-generate overloads for drawImageFromRect()
24 https://bugs.webkit.org/show_bug.cgi?id=61709
26 Move CanvasRenderingContext2D.drawImageFromRect() to auto-generated JSC bindings.
27 Make it [RequiresAllArguments=Raise] to match the old behavior.
28 Side effect: calling drawImageFromRect() with zero arguments will now raise
29 SyntaxError instead of TypeError.
31 Test: fast/canvas/canvas-overloads-drawImageFromRect.html
33 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
34 * html/canvas/CanvasRenderingContext2D.h:
35 * html/canvas/CanvasRenderingContext2D.idl:
37 2011-05-31 Andreas Kling <kling@webkit.org>
39 Reviewed by Antti Koivisto.
41 Canvas/JSC: Auto-generate overloads for drawImage()
42 https://bugs.webkit.org/show_bug.cgi?id=61703
44 Move CanvasRenderingContext2D.drawImage() to auto-generated JSC bindings.
46 There is a subtle difference to the previous behavior: invalid numbers of
47 arguments now raise TypeError instead of SyntaxError. This is in accordance
48 with Web IDL, and matches the existing V8 bindings.
50 Test: fast/canvas/canvas-overloads-drawImage.html
52 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
53 * html/canvas/CanvasRenderingContext2D.idl:
55 2011-05-31 Andreas Kling <kling@webkit.org>
57 Reviewed by Antti Koivisto.
59 Canvas/JSC: Auto-generate overloads for strokeRect()
60 https://bugs.webkit.org/show_bug.cgi?id=61641
62 Move CanvasRenderingContext2D.setStrokeColor() to auto-generated JSC bindings.
66 Test: fast/canvas/canvas-overloads-strokeRect.html
68 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
69 * html/canvas/CanvasRenderingContext2D.idl:
71 2011-05-31 Andreas Kling <kling@webkit.org>
73 Reviewed by Antti Koivisto.
75 Canvas/JSC: Auto-generate overloads for setFillColor()
76 https://bugs.webkit.org/show_bug.cgi?id=61635
78 Move CanvasRenderingContext2D.setStrokeColor() to auto-generated JSC bindings.
80 There is a subtle difference to the previous behavior: invalid numbers of
81 arguments now raise TypeError instead of SyntaxError. This is in accordance
82 with Web IDL, but doesn't matter much anyway since this method is WebKit-only.
84 Test: fast/canvas/canvas-overloads-setFillColor.html
86 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
87 * html/canvas/CanvasRenderingContext2D.idl:
89 2011-05-31 Andreas Kling <kling@webkit.org>
91 Reviewed by Antti Koivisto.
93 Canvas/JSC: Auto-generate overloads for setStrokeColor()
94 https://bugs.webkit.org/show_bug.cgi?id=61629
96 Move CanvasRenderingContext2D.setStrokeColor() to auto-generated JSC bindings.
98 There is a subtle difference to the previous behavior: invalid numbers of
99 arguments now raise TypeError instead of SyntaxError. This is in accordance
100 with Web IDL, but doesn't matter much anyway since this method is WebKit-only.
102 Test: fast/canvas/canvas-overloads-setStrokeColor.html
104 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
105 * html/canvas/CanvasRenderingContext2D.idl:
107 2011-05-31 Andreas Kling <kling@webkit.org>
109 Reviewed by Antti Koivisto.
111 Canvas/JSC: Auto-generate overloads for strokeText()
112 https://bugs.webkit.org/show_bug.cgi?id=61626
114 Move CanvasRenderingContext2D.strokeText() to auto-generated JSC bindings.
115 Make it [RequiresAllArguments=Raise] to match the old behavior.
116 This has the side-effect of aligning the behaviors of JSC and V8.
118 Test: fast/canvas/canvas-overloads-strokeText.html
120 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
121 * html/canvas/CanvasRenderingContext2D.idl:
123 2011-05-31 Andreas Kling <kling@webkit.org>
125 Reviewed by Antti Koivisto.
127 Canvas/JSC: Auto-generate overloads for fillText()
128 https://bugs.webkit.org/show_bug.cgi?id=61623
130 Move CanvasRenderingContext2D.fillText() to auto-generated JSC bindings.
131 Make it [RequiresAllArguments=Raise] to match the old behavior.
132 This has the side-effect of aligning the behaviors of JSC and V8.
134 Test: fast/canvas/canvas-overloads-fillText.html
136 * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
137 * html/canvas/CanvasRenderingContext2D.idl:
139 2011-05-31 Yael Aharon <yael.aharon@nokia.com>
141 Reviewed by Kenneth Rohde Christiansen.
143 Frame flattening is broken with nested frames
144 https://bugs.webkit.org/show_bug.cgi?id=61491
146 After r77988, when frame flattening is enabled, performPostLayoutTasks() is called on a timer for iframes.
147 This causes layout of nested iframes to sometimes happen asynchronously, but WebCore expects layout to always finish synchronously.
148 Added a call to updateWidgetPosition() for cases that performPostLayoutTasks() is now happening asynchronously.
150 Test: fast/frames/flattening/iframe-flattening-nested.html
152 * page/FrameView.cpp:
153 (WebCore::FrameView::layout):
155 2011-05-31 Tommy Widenflycht <tommyw@google.com>
157 Reviewed by Tony Gentilcore.
159 Fix getUserMedia callback bindings for JSC.
160 https://bugs.webkit.org/show_bug.cgi?id=60174
162 This patch initializes the exception code variable to 0.
164 Test: fast/dom/MediaStream/argument-types.html
166 * bindings/js/JSNavigatorCustom.cpp:
167 (WebCore::JSNavigator::webkitGetUserMedia):
169 2011-05-31 Oleg Romashin <oleg.romashin@nokia.com>
171 Reviewed by Benjamin Poulain.
173 Fix compilation with debug enabled, m_lightSource.type is not valid anymore
174 https://bugs.webkit.org/show_bug.cgi?id=61719
176 * platform/graphics/filters/arm/FELightingNEON.h:
177 (WebCore::FELighting::platformApplyNeon):
179 2011-05-31 Oliver Varga <Varga.Oliver@stud.u-szeged.hu>
181 Reviewed by Nikolas Zimmermann.
183 Invalid color handling is broken for SVG
184 https://bugs.webkit.org/show_bug.cgi?id=58531
186 Fix invalid color fallback handling. If the fill/stroke attributes computed
187 value leads to a an invalid color, inherit the desired color from the parent
188 style instead. Matches Opera/FF and SVG 1.1 Second Edition (http://www.w3.org/TR/SVG/).
190 Tests: svg/custom/invalid-stroke-hex.svg
191 svg/custom/invalid-uri-stroke.svg
193 * rendering/svg/RenderSVGResource.cpp:
194 (WebCore::inheritColorFromParentStyleIfNeeded):
195 (WebCore::requestPaintingResource):
197 2011-05-31 Vangelis Kokkevis <vangelis@chromium.org>
199 Reviewed by Kent Tamura.
201 [chromium] Avoid double deletion of DrawingBuffer's color buffer
203 https://bugs.webkit.org/show_bug.cgi?id=61761
205 Test: Verified that the DCHECK in GraphicsContext3D implementation
208 * platform/graphics/chromium/DrawingBufferChromium.cpp:
209 (WebCore::DrawingBuffer::~DrawingBuffer):
211 2011-05-30 Hayato Ito <hayato@chromium.org>
213 Reviewed by Ryosuke Niwa.
215 Add a utility function for dumping a tree for the Node, including a document of a frame.
216 https://bugs.webkit.org/show_bug.cgi?id=61727
218 No new tests since added functions are only available in debug builds.
221 (WebCore::parentOrHostOrFrameOwner):
222 (WebCore::traverseNextNodeAcrossFrame):
223 (WebCore::Node::showTreeForThisAcrossFrame):
226 2011-05-30 James Kozianski <koz@chromium.org>
228 Reviewed by Kent Tamura.
230 [Chromium] Make isValidProtocol() accept protocols with '+'.
231 https://bugs.webkit.org/show_bug.cgi?id=61759
233 Also, detect syntax errors before security errors; some syntax errors
234 will also trigger a security error, but it's more helpful to the
235 programmer to know if they have a syntax error, which are well-defined
236 in the spec, rather than a security error, which aren't.
238 * page/Navigator.cpp:
239 (WebCore::Navigator::registerProtocolHandler):
240 Detect syntax errors before security errors.
241 * platform/KURLGoogle.cpp:
242 (WebCore::isSchemeChar):
243 Include '+' in the list of valid characters.
245 2011-05-30 Andrey Petrov <andrey.petrov@gmail.com>
247 Reviewed by Hajime Morita.
249 Using jQuery to show/hide IMG elements crashes WebKit
250 https://bugs.webkit.org/show_bug.cgi?id=31721
252 For platform code, do not assert nodes always have renderer at
253 the time context menu action is invoked.
254 Renderer can actually be empty for a given node if it was hidden
255 or removed from domtree by some non-user generated event (e.g timeout)
256 after the popup menu had been created.
258 Changing Chromium, Gtk, Mac, Qt, Win and WinCE.
260 Test: editing/pasteboard/copy-standalone-image-crash.html
262 * platform/chromium/PasteboardChromium.cpp:
263 (WebCore::Pasteboard::writeImage):
264 * platform/gtk/PasteboardGtk.cpp:
265 (WebCore::Pasteboard::writeImage):
266 * platform/mac/PasteboardMac.mm:
267 (WebCore::Pasteboard::writeImage):
268 * platform/qt/PasteboardQt.cpp:
269 (WebCore::Pasteboard::writeImage):
270 * platform/win/PasteboardWin.cpp:
271 (WebCore::Pasteboard::writeImage):
272 * platform/wince/PasteboardWinCE.cpp:
273 (WebCore::Pasteboard::writeImage):
275 2011-05-30 Daniel Bates <dbates@webkit.org>
277 Reviewed by Adam Barth.
279 Rename XSSFilter to XSSAuditor
280 https://bugs.webkit.org/show_bug.cgi?id=61718
282 Currently we use the names XSSFilter and XSSAuditor throughout the project.
283 Instead, we should choose one name for consistency.
285 No functionality was changed. So, no new tests.
288 * GNUmakefile.list.am:
291 * WebCore.vcproj/WebCore.vcproj:
292 * WebCore.xcodeproj/project.pbxproj:
293 * html/parser/HTMLDocumentParser.cpp:
294 (WebCore::HTMLDocumentParser::HTMLDocumentParser):
295 (WebCore::HTMLDocumentParser::pumpTokenizer):
296 * html/parser/HTMLDocumentParser.h:
297 * html/parser/XSSAuditor.cpp: Copied from Source/WebCore/html/parser/XSSFilter.cpp.
298 (WebCore::XSSAuditor::XSSAuditor):
299 (WebCore::XSSAuditor::init):
300 (WebCore::XSSAuditor::filterToken):
301 (WebCore::XSSAuditor::filterTokenInitial):
302 (WebCore::XSSAuditor::filterTokenAfterScriptStartTag):
303 (WebCore::XSSAuditor::filterScriptToken):
304 (WebCore::XSSAuditor::filterObjectToken):
305 (WebCore::XSSAuditor::filterParamToken):
306 (WebCore::XSSAuditor::filterEmbedToken):
307 (WebCore::XSSAuditor::filterAppletToken):
308 (WebCore::XSSAuditor::filterIframeToken):
309 (WebCore::XSSAuditor::filterMetaToken):
310 (WebCore::XSSAuditor::filterBaseToken):
311 (WebCore::XSSAuditor::filterFormToken):
312 (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
313 (WebCore::XSSAuditor::eraseAttributeIfInjected):
314 (WebCore::XSSAuditor::snippetForRange):
315 (WebCore::XSSAuditor::snippetForAttribute):
316 (WebCore::XSSAuditor::isContainedInRequest):
317 (WebCore::XSSAuditor::isSameOriginResource):
318 * html/parser/XSSAuditor.h: Copied from Source/WebCore/html/parser/XSSFilter.h.
319 * html/parser/XSSFilter.cpp: Removed.
320 * html/parser/XSSFilter.h: Removed.
322 2011-05-30 No'am Rosenthal <noam.rosenthal@nokia.com>
324 Reviewed by Simon Hausmann.
326 WebKit2: Enable serializing of data types needed for cross-process accelerated compositing
327 https://bugs.webkit.org/show_bug.cgi?id=61694
329 Expose a public clearAll() function to reset WebCore::Animation.
331 No new functionality, so no new tests.
333 * platform/animation/Animation.h:
334 (WebCore::Animation::clearAll):
336 2011-05-30 Eric Carlson <eric.carlson@apple.com>
338 Reviewed by Alexey Proskuryakov.
340 Audio and video files saved to the Application Cache should preserve the original file extension
341 https://bugs.webkit.org/show_bug.cgi?id=61750
344 No new tests, it isn't possible to check the name of the file in the cache from within
345 DRT. Changes verified manually.
347 * loader/appcache/ApplicationCacheStorage.cpp:
348 (WebCore::ApplicationCacheStorage::store): Append the original file extension to the cache
350 (WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory): Add extension parameter.
351 * loader/appcache/ApplicationCacheStorage.h:
353 2011-05-30 Jer Noble <jer.noble@apple.com>
355 Reviewed by Dan Bernstein.
357 Play/Pause button in wrong state when entering full screen on Vimeo
358 https://bugs.webkit.org/show_bug.cgi?id=61754
360 Update the play/pause button inside reset(). This ensures the button is in
361 the correct state when the controls are created after playback has already
364 * html/shadow/MediaControlRootElement.cpp:
365 (WebCore::MediaControlRootElement::reset):
367 2011-05-30 No'am Rosenthal <noam.rosenthal@nokia.com>
369 Reviewed by Simon Hausmann.
371 WebKit2: Enable serializing of data types needed for cross-process accelerated compositing
372 https://bugs.webkit.org/show_bug.cgi?id=61694
374 Added a public TimingFunction::type() method.
376 No new functionality, so no new tests.
378 * platform/animation/TimingFunction.h:
379 (WebCore::TimingFunction::type):
381 2011-05-30 Noam Rosenthal <noam.rosenthal@nokia.com>
383 BUILD FIX for r87697 on Windows/Symbian
385 For now enabling TextureMapper for Mac/Linux only.
389 2011-05-30 David Kilzer <ddkilzer@apple.com>
391 BUILD FIX for r87692 with !ENABLE(FULLSCREEN_API)
393 * dom/EventDispatcher.cpp:
394 (WebCore::EventDispatcher::determineDispatchBehavior): Mark
395 shadowRoot as an unused parameter with !ENABLE(FULLSCREEN_API).
397 2011-05-30 No'am Rosenthal <noam.rosenthal@nokia.com>
399 Reviewed by Andreas Kling.
401 [Texmap][Qt] Enable TextureMapper by default
402 https://bugs.webkit.org/show_bug.cgi?id=61740
404 Make CONFIG+=texmap an opt-out instead of an opt-in.
406 No new functionality so no new tests.
410 2011-05-30 Martin Robinson <mrobinson@igalia.com>
412 Reviewed by Xan Lopez.
414 [GTK] fast/css/font-face-zero-hash-key.html is crashing on the bots
415 https://bugs.webkit.org/show_bug.cgi?id=61693
417 Do not try to read the FT_Face from m_scaledFont if it m_scaledFont is
418 null. A recent change fixing 0-pixel-size fonts means that m_scaledFont
421 No new tests. This change should cause fast/css/font-face-zero-hash-key.html
424 * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
425 (WebCore::FontPlatformData::FontPlatformData): Do a null check before accessing
428 2011-05-30 Noam Rosenthal <noam.rosenthal@nokia.com>
430 Reviewed by Kenneth Rohde Christiansen.
432 [Texmap][Qt] Disable accelerated plugins/media until they're working.
433 https://bugs.webkit.org/show_bug.cgi?id=61687
435 Until this works properly, we should indicate that our media implementation
436 in texture mapper doesn't support accelerated compositing.
438 This makes LayoutTests/compositing/video/* work again.
440 * platform/graphics/qt/MediaPlayerPrivateQt.h:
441 (WebCore::MediaPlayerPrivateQt::supportsAcceleratedRendering):
442 (WebCore::MediaPlayerPrivateQt::platformLayer):
444 2011-05-30 Mikhail Naganov <mnaganov@chromium.org>
446 Reviewed by Adam Barth.
448 [Chromium] Fix regression after r87628.
449 https://bugs.webkit.org/show_bug.cgi?id=61733
451 Having r87628 in place, Chrome reliability bot crashes in
452 WebCore::HTMLLinkElement::onloadTimerFired.
454 This is because the change makes WebCore::CachedResource::setRequest to
455 call checkNotify on request reset. HTMLLinkElement registers itself as
456 CachedResource client via m_cachedSheet, which can happen even if
457 m_cachedLinkResource wasn't set. As a result,
458 WebCore::HTMLLinkElement::notifyFinished is got called with unset
459 m_cachedLinkResource, which causes a crash in
460 HTMLLinkElement::onloadTimerFired
462 * html/HTMLLinkElement.cpp:
463 (WebCore::HTMLLinkElement::notifyFinished):
465 2011-05-30 Jer Noble <jer.noble@apple.com>
467 Reviewed by Darin Adler and Simon Fraser.
469 REGRESSION (r87622): Scrubbing a Vimeo movie when in fullscreen stops playback; no way to make it start again
470 https://bugs.webkit.org/show_bug.cgi?id=61717
471 rdar://problem/9522272
473 May be some good way to test this later. No immediate idea about the best way.
475 When a media element is taken into full-screen mode, stop events from propagating
476 outside the media element's shadow DOM, EventDispatcher::determineDispatchBehavior()
477 has been changed to take a shadow root node. In our full screen media element check,
478 we check to see if the passed shadow root is the shadow root of the full screen media
479 element, and if so, specify events should StayInsideShadowDOM. The end result is that
480 inside EventDispatcher::ensureEventAncestors, an ancestor chain is built up all the
481 way from the SliderThumb to the video element's shadow root, but no further.
483 * dom/EventDispatcher.cpp:
484 (WebCore::EventDispatcher::determineDispatchBehavior): Restrict events to the
485 shadow DOM when showing a full screen video.
487 * html/HTMLMediaElement.cpp:
488 (WebCore::HTMLMediaElement::HTMLMediaElement): Removed code to manage full screen controls.
489 The events telling us about activity in the shadow DOM no longer bubble out so we need to
490 handle this inside the shadow DOM on the root element.
491 (WebCore::HTMLMediaElement::play): Ditto.
492 (WebCore::HTMLMediaElement::playbackProgressTimerFired): Ditto.
493 (WebCore::HTMLMediaElement::defaultEventHandler): Ditto.
494 (WebCore::HTMLMediaElement::enterFullscreen): Ditto.
495 (WebCore::HTMLMediaElement::exitFullscreen): Ditto.
496 * html/HTMLMediaElement.h: Added isPlaying function, removed things moved to the root element.
498 * html/shadow/MediaControlElements.cpp:
499 (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler): Rolled out
500 changes that tried to make special rules for events using preDispatchEventHandler and such.
501 This rolls out both r87622 and r87655.
502 (WebCore::MediaControlMuteButtonElement::defaultEventHandler): Ditto.
503 (WebCore::MediaControlPanelMuteButtonElement::defaultEventHandler): Ditto.
504 (WebCore::MediaControlPlayButtonElement::defaultEventHandler): Ditto.
505 (WebCore::MediaControlSeekButtonElement::defaultEventHandler): Ditto.
506 (WebCore::MediaControlRewindButtonElement::defaultEventHandler): Ditto.
507 (WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler): Ditto.
508 (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler): Ditto.
509 (WebCore::MediaControlTimelineElement::defaultEventHandler): Ditto.
510 (WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Ditto.
511 (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler): Ditto.
512 (WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler): Ditto.
513 (WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler): Ditto.
514 * html/shadow/MediaControlElements.h: Ditto.
516 * html/shadow/MediaControlRootElement.cpp:
517 (WebCore::MediaControlRootElement::MediaControlRootElement): Initialize new data members.
518 (WebCore::MediaControlRootElement::playbackStarted): Start the timer so we will consider
519 hiding the controls later.
520 (WebCore::MediaControlRootElement::playbackProgressed): Hide the controls if the mouse
521 is no longer over the controls.
522 (WebCore::MediaControlRootElement::playbackStopped): Stop the timer since we only hide
523 automatically if we're playing.
524 (WebCore::MediaControlRootElement::enteredFullscreen): Start the timer.
525 (WebCore::MediaControlRootElement::exitedFullscreen): Stop the timer since we only care
526 if we are full screen.
527 (WebCore::MediaControlRootElement::containsRelatedTarget): Added. Helper for next function.
528 (WebCore::MediaControlRootElement::defaultEventHandler): Do the hide/show and timer functions
529 as the mouse is moved in and out.
530 (WebCore::MediaControlRootElement::startHideFullscreenControlsTimer): Start the timer if
532 (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired): Hide if the conditions
534 (WebCore::MediaControlRootElement::stopHideFullscreenControlsTimer): Stop the timer.
536 * html/shadow/MediaControlRootElement.h: Added new functions and data members.
539 2011-05-30 Gavin Peters <gavinp@chromium.org>
541 Reviewed by Adam Barth.
543 prevent HTMLLinkElement from watching multiple CachedResources
544 https://bugs.webkit.org/show_bug.cgi?id=61686
546 If we modify an existing link element, stop listening to the previous
547 cached resource, to prevent double notifications (which crash).
549 Test: fast/dom/HTMLLinkElement/prefetch-too-many-clients.html
551 * html/HTMLLinkElement.cpp:
552 (WebCore::HTMLLinkElement::process):
554 2011-05-30 Peter Varga <pvarga@webkit.org>
556 Unreviewed build fix.
558 [Qt][V8] Fix debug build.
562 * css/CSSStyleDeclaration.cpp: Add missing header.
563 * dom/Text.cpp: Ditto.
564 * rendering/InlineTextBox.cpp: Ditto.
566 2011-05-30 Sheriff Bot <webkit.review.bot@gmail.com>
568 Unreviewed, rolling out r87683.
569 http://trac.webkit.org/changeset/87683
570 https://bugs.webkit.org/show_bug.cgi?id=61729
572 Breaks inspector tests on Chromium (Requested by apavlov on
575 * inspector/front-end/StylesSidebarPane.js:
576 (WebInspector.StylesSidebarPane.prototype.update):
578 2011-05-25 Alexander Pavlov <apavlov@chromium.org>
580 Reviewed by Yury Semikhatsky.
582 Web Inspector: node selection is slow in the Elements panel.
583 https://bugs.webkit.org/show_bug.cgi?id=60813
585 Schedule full style updates rather than request all node styles from the backend up front.
587 * inspector/front-end/StylesSidebarPane.js:
588 (WebInspector.StylesSidebarPane.prototype.update.reloadAllStyles):
589 (WebInspector.StylesSidebarPane.prototype.update):
591 2011-05-30 Andrey Kosyakov <caseq@chromium.org>
593 Reviewed by Pavel Feldman.
595 Web Inspector: do not issue frontendReused for reload or navigation.
596 https://bugs.webkit.org/show_bug.cgi?id=61192
598 - only issue frontendReused when inspector is attached after main resource committed load
599 - upon committing loading main resource, reset agents before sending FrameNavigated to page agent
600 - Ensure main resource is set early so that abbreviations of URLs in resource tree are consistent after reload
601 - do not enable agents explicitly in frontendReused (this is done by backend when resotring state from cookie)
603 * inspector/InspectorAgent.cpp:
604 (WebCore::InspectorAgent::InspectorAgent):
605 (WebCore::InspectorAgent::restore):
606 (WebCore::InspectorAgent::clearFrontend):
607 (WebCore::InspectorAgent::didCommitLoad):
608 * inspector/InspectorAgent.h:
609 * inspector/InspectorInstrumentation.cpp:
610 (WebCore::InspectorInstrumentation::didCommitLoadImpl):
611 * inspector/front-end/NetworkManager.js:
612 * inspector/front-end/ResourceTreeModel.js:
613 (WebInspector.ResourceTreeModel.prototype._processCachedResources):
614 (WebInspector.ResourceTreeModel.prototype._frameNavigated):
615 (WebInspector.ResourceTreeModel.prototype._cleanupFramesAfterNavigation):
616 (WebInspector.ResourceTreeModel.prototype._addFramesRecursively):
617 * inspector/front-end/ResourcesPanel.js:
618 (WebInspector.ResourcesPanel.prototype.reset):
619 (WebInspector.ResourcesPanel.prototype._resetResourcesTree):
620 (WebInspector.DatabaseTreeElement.prototype.onpopulate):
621 (WebInspector.SearchResultsTreeElementsTraverser.prototype._lastTreeElement):
622 * inspector/front-end/inspector.js:
623 (WebInspector.reset):
624 (WebInspector.frontendReused):
626 2011-05-30 Ryan Sleevi <rsleevi@chromium.org>
628 Reviewed by Darin Adler.
630 FEConvolveMatrix::getPixelValue() fails to properly check if y is within bounds, causing it to fail to correctly apply the kernel and edge mode to the first targetY pixels
631 https://bugs.webkit.org/show_bug.cgi?id=61603
633 Test: svg/filters/feConvolveFilter-y-bounds.svg
635 * platform/graphics/filters/FEConvolveMatrix.cpp:
636 (WebCore::FEConvolveMatrix::getPixelValue):
638 2011-05-30 Nate Chapin <japhet@chromium.org>
640 Reviewed by Antti Koivisto.
642 Refactor the CachedResourceLoader -> CachedResource -> CachedResourceRequest
643 flow so it's a little less circular.
644 https://bugs.webkit.org/show_bug.cgi?id=61666
646 * loader/cache/CachedFont.cpp:
647 (WebCore::CachedFont::beginLoadIfNeeded):
648 * loader/cache/CachedResource.cpp:
649 (WebCore::CachedResource::load):
650 * loader/cache/CachedResourceLoader.cpp:
651 (WebCore::CachedResourceLoader::requestImage):
652 (WebCore::CachedResourceLoader::setAutoLoadImages):
653 (WebCore::CachedResourceLoader::loadStarted):
654 * loader/cache/CachedResourceLoader.h:
655 * loader/cache/CachedResourceRequest.cpp:
656 (WebCore::CachedResourceRequest::load):
658 2011-05-30 Sheriff Bot <webkit.review.bot@gmail.com>
660 Unreviewed, rolling out r87618.
661 http://trac.webkit.org/changeset/87618
662 https://bugs.webkit.org/show_bug.cgi?id=61720
664 Causes BrowserFocusTest.FocusOnReload to fail (Requested by
665 abarth|gardener on #webkit).
667 * html/HTMLLinkElement.cpp:
668 (WebCore::HTMLLinkElement::process):
670 2011-05-29 Yuta Kitamura <yutak@chromium.org>
672 Reviewed by Kent Tamura.
674 WebSocket closing handshake
675 https://bugs.webkit.org/show_bug.cgi?id=35721
677 Implement WebSocket closing handshake based on Ian Hickson's
678 WebSocket protocol draft 76.
680 Tests: http/tests/websocket/tests/client-close.html
681 http/tests/websocket/tests/server-close.html
683 * platform/network/SocketStreamHandleBase.cpp:
684 (WebCore::SocketStreamHandleBase::send):
685 Do not send a message if we are in Closing state.
686 (WebCore::SocketStreamHandleBase::close):
687 Do not disconnect if we have pending data which have not been sent yet.
688 In this case, the actual disconnection will happen in sendPendingData().
689 (WebCore::SocketStreamHandleBase::disconnect):
690 Renamed from close(). Disconnect the connection immediately.
691 (WebCore::SocketStreamHandleBase::sendPendingData):
692 * platform/network/SocketStreamHandleBase.h:
693 * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
694 Add didStartClosingHandshake(). Add a function argument (ClosingHandshakeCompletionStatus)
696 (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
697 (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
698 (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback):
699 (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
700 * websockets/ThreadableWebSocketChannelClientWrapper.h:
701 * websockets/WebSocket.cpp:
702 (WebCore::WebSocket::send):
703 (WebCore::WebSocket::close):
704 Fail if close() is attempted before the connection is established.
705 Otherwise, set the state to CLOSING and start the closing handshake.
706 (WebCore::WebSocket::bufferedAmount):
707 If the state is CLOSING, we need to consider buffered data in m_channel and sent after close().
708 (WebCore::WebSocket::didConnect):
709 (WebCore::WebSocket::didReceiveMessage):
710 We need to invoke message event in CLOSING state as well as OPEN state.
711 (WebCore::WebSocket::didReceiveMessageError):
712 (WebCore::WebSocket::didStartClosingHandshake):
713 (WebCore::WebSocket::didClose):
714 * websockets/WebSocket.h:
715 * websockets/WebSocketChannel.cpp:
716 (WebCore::WebSocketChannel::WebSocketChannel):
717 (WebCore::WebSocketChannel::close):
718 Start the closing handshake.
719 (WebCore::WebSocketChannel::disconnect):
720 Disconnect the socket stream, instead of close.
721 (WebCore::WebSocketChannel::didClose):
722 (WebCore::WebSocketChannel::didReceiveData): Ditto.
723 (WebCore::WebSocketChannel::didFail): Ditto.
724 (WebCore::WebSocketChannel::processBuffer):
726 Handle 0xFF 0x00 byte sequence, and discard received data once the closing handshake has started.
727 (WebCore::WebSocketChannel::startClosingHandshake):
728 Send 0xFF 0x00 byte sequence.
729 (WebCore::WebSocketChannel::closingTimerFired):
730 Disconnect the socket stream if the closing handshake has timed out.
731 * websockets/WebSocketChannel.h:
732 m_closing is true if "the WebSocket closing handshake has started" (as stated in the protocol
734 * websockets/WebSocketChannelClient.h:
735 (WebCore::WebSocketChannelClient::didStartClosingHandshake): Added.
736 (WebCore::WebSocketChannelClient::didClose): Add closingHandshakeCompletion parameter.
737 * websockets/WorkerThreadableWebSocketChannel.cpp:
738 Add closingHandshakeCompletion parameter to didClose(), and add didStartClosingHandshake().
739 (WebCore::WorkerThreadableWebSocketChannel::Peer::close):
740 (WebCore::workerContextDidStartClosingHandshake):
741 (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
742 (WebCore::workerContextDidClose):
743 (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
744 * websockets/WorkerThreadableWebSocketChannel.h:
746 2011-05-29 Adam Barth <abarth@webkit.org>
748 Attempt to fix build by implementing pure virtual function.
750 * html/shadow/MediaControlRootElementChromium.cpp:
751 (WebCore::MediaControlRootElementChromium::shouldHideControls):
752 * html/shadow/MediaControlRootElementChromium.h:
754 2011-05-29 Brian Weinstein <bweinstein@apple.com>
756 Reviewed by Darin Adler.
758 Controls never hide in full screen after user stops moving mouse
759 https://bugs.webkit.org/show_bug.cgi?id=61715
760 <rdar://problem/9522182>
762 When we get a mouse move event in HTMLMediaElement::defaultEventHandler, and we are in full screen,
763 show the media controls, and then start a timer.
765 The timer fires 3 seconds after the user's last mouse movement (timer is restarted on every mouse
766 move), and hides the controls.
768 * html/HTMLMediaElement.cpp:
769 (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize our new timer.
770 (WebCore::HTMLMediaElement::play): If we are in full screen mode, start our timer to hide the full screen
771 controls. We don't want the user to have to move the mouse to hide them when they use the spacebar
773 (WebCore::HTMLMediaElement::startHideFullscreenControlsTimer): Starts a oneshot timer 3 seconds in the future
774 if we are in full screen.
775 (WebCore::HTMLMediaElement::hideFullscreenControlsTimerFired): Make sure that we are currently playing, and
776 we are in full screen, and hide the controls. We don't want to hide the controls if we are paused.
777 (WebCore::HTMLMediaElement::stopHideFullscreenControlsTimer): Stops the timer.
778 (WebCore::HTMLMediaElement::defaultEventHandler): If we get a mouse move event and are in full screen, show the
779 controls and start a timer to hide them.
780 (WebCore::HTMLMediaElement::enterFullscreen): Start a timer to hide the full screen controls. The user shouldn't
781 have the move the mouse once they enter full screen to hide the controls.
782 (WebCore::HTMLMediaElement::exitFullscreen): Stop the timer to hide the full screen controls.
783 * html/HTMLMediaElement.h:
784 * html/shadow/MediaControls.h: Added pure virtual shouldHideControls() method.
785 * html/shadow/MediaControlRootElement.cpp:
786 (WebCore::MediaControlRootElement::playbackStopped): Stop the timer to hide the full screen controls.
787 (WebCore::MediaControlRootElement::shouldHideControls): Added, only report that
788 the caller should hide the controls if the panel is not hovered.
789 * html/shadow/MediaControlRootElement.h:
791 2011-05-29 Jer Noble <jer.noble@apple.com>
793 Reviewed by Simon Fraser.
795 Embedded Vimeo video, when taken fullscreen, is overlapped by content from the enclosing page
796 https://bugs.webkit.org/show_bug.cgi?id=61712
798 Tests: fullscreen/full-screen-iframe-zIndex.html
800 Walk up the ancestor chain for the full-screen element, marking them as full-screen
801 ancestors. Then, we apply a pseudo-class to those elements, which disable all their
802 stacking-context-creating styles. Set the z-index of all full-screen elements (and
803 the iframes which contain them) to a large value, ensuring they appear above other
806 This new behavior replaces the previous "-webkit-full-screen-media-document" behavior
807 and pesudo-class, so remove it and replace it with the new pseudo-class.
809 * css/CSSSelector.cpp:
810 (WebCore::nameToPseudoTypeMap): Add -webkit-full-screen-ancestor and remove
811 -webkit-full-screen-media-document.
812 (WebCore::CSSSelector::pseudoId): Add PseudoFullScreenAncestor and remove
813 PseudoFullScreenMediaDocument
814 (WebCore::CSSSelector::extractPseudoType): Ditto.
815 * css/CSSSelector.h: Ditto.
816 * css/CSSStyleSelector.cpp:
817 (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Remove the
818 PseudoFullScreenMediaDocument implementation and replace it with
819 PseudoFullScreenAncestor.
820 * css/fullscreen.css:
821 (:-webkit-full-screen): Add a z-index property.
822 (:-webkit-full-screen-ancestor:not(iframe)): Added. Reset the z-index to
823 auto, and reset other stacking-context creating properties.
825 (WebCore::Document::setContainsFullScreenElementRecursively): Recurse up every element
826 instead of just the iframe elements.
827 (WebCore::Document::webkitWillEnterFullScreenForElement): Ditto.
829 (WebCore::Element::willRemove): Reset our parent's containsFullScreenElement property.
830 (WebCore::Element::insertedIntoTree): Ditto.
831 (WebCore::Element::containsFullScreenElement): Moved here from HTMLElementBase.
832 (WebCore::Element::setContainsFullScreenElement): Ditto.
834 * dom/ElementRareData.h:
835 (WebCore::ElementRareData::ElementRareData): Added ivar and initializer for
836 m_containsFullScreenElement.
837 * html/HTMLFrameElementBase.cpp:
838 (WebCore::HTMLFrameElementBase::HTMLFrameElementBase): Removed ivar and initializer.
839 (WebCore::HTMLFrameElementBase::setContainsFullScreenElement): Moved into Element.
840 * html/HTMLFrameElementBase.h:
841 * rendering/style/RenderStyleConstants.h:
843 2011-05-29 Dan Bernstein <mitz@apple.com>
845 Reviewed by Darin Adler.
847 <rdar://problem/9515650> 30 second rewind button obscured in fullscreen controller when video uses custom inline controls
848 https://bugs.webkit.org/show_bug.cgi?id=61714
851 (WebCore::Document::webkitDidEnterFullScreenForElement): Call didBecomeFullscreenElement() on the
852 new full screen element.
853 (WebCore::Document::webkitWillExitFullScreenForElement): Call willStopBeingFullscreenElement() on
854 the full screen element.
856 (WebCore::Element::didBecomeFullscreenElement): Added with a default implementation that does nothing.
857 (WebCore::Element::willStopBeingFullscreenElement): Ditto.
858 * html/HTMLMediaElement.cpp:
859 (WebCore::HTMLMediaElement::didBecomeFullscreenElement): Added this override, which calls
860 MediaControls::enteredFullscreen().
861 (WebCore::HTMLMediaElement::willStopBeingFullscreenElement): Added this override, which calls
862 MediaControls::exitedFullscreen().
863 * html/HTMLMediaElement.h:
864 * html/shadow/MediaControlElements.cpp:
865 (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Removed calls to
866 enteredFullscreen() and exitedFullscreen() from here, since they are now called in response to
867 changes to the fullscreen-ness of the element.
869 2011-05-29 Darin Adler <darin@apple.com>
871 Reviewed by Kevin Decker.
873 REGRESSION (r87622): In media documents, clicking the full screen button and the play button pauses the video
874 https://bugs.webkit.org/show_bug.cgi?id=61713
876 We need to come up with a way to regression-test these changes. Nothing at the moment.
878 The bug is that we removed calls to preventDefault, but we still do need to prevent
879 default handling of this event.
881 * html/shadow/MediaControlElements.cpp:
882 (WebCore::MediaControlElement::preDispatchEventHandler): Add back the preventDefault
883 that was in here before r87622 as well as the stopPropagation that was added in r87622.
884 (WebCore::MediaControlMuteButtonElement::preDispatchEventHandler): Ditto.
885 (WebCore::MediaControlPlayButtonElement::preDispatchEventHandler): Ditto.
886 (WebCore::MediaControlSeekButtonElement::preDispatchEventHandler): Ditto.
887 (WebCore::MediaControlRewindButtonElement::preDispatchEventHandler): Ditto.
888 (WebCore::MediaControlReturnToRealtimeButtonElement::preDispatchEventHandler): Ditto.
889 (WebCore::MediaControlToggleClosedCaptionsButtonElement::preDispatchEventHandler): Ditto.
890 (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Ditto.
891 (WebCore::MediaControlFullscreenVolumeMinButtonElement::preDispatchEventHandler): Ditto.
892 (WebCore::MediaControlFullscreenVolumeMaxButtonElement::preDispatchEventHandler): Ditto.
894 2011-05-29 Andreas Kling <kling@webkit.org>
896 Reviewed by Kenneth Rohde Christiansen.
898 Element: Micro-cleanup of scroll methods.
899 https://bugs.webkit.org/show_bug.cgi?id=61705
901 Do an early return without calculating element boundaries when asked
902 to scroll an element without a renderer().
905 (WebCore::Element::scrollIntoView):
906 (WebCore::Element::scrollIntoViewIfNeeded):
907 (WebCore::Element::scrollByUnits):
909 2011-05-29 Darin Adler <darin@apple.com>
911 Reviewed by Dan Bernstein.
913 Fix assertion seen when entering full screen mode for standalone video
914 https://bugs.webkit.org/show_bug.cgi?id=61708
916 We don't currently have a way to make a regression test for this.
919 (WebCore::Document::setAnimatingFullScreen): Call scheduleForcedStyleRecalc,
920 because scheduleStyleRecalc is intended to only be called when the style
921 system itself detects recalc is needed.
923 2011-05-27 Andreas Kling <kling@webkit.org>
925 Reviewed by James Robinson.
927 [Qt] Add area check to ImageBufferData::getImageData()
928 https://bugs.webkit.org/show_bug.cgi?id=61375
930 No change in behavior, just a sanity check.
932 * platform/graphics/qt/ImageBufferQt.cpp:
933 (WebCore::getImageData):
935 2011-05-29 Beth Dakin <bdakin@apple.com>
937 Reviewed by Darin Adler.
939 https://bugs.webkit.org/show_bug.cgi?id=61700
940 Need WebKit2 API to get the size of the render tree
942 <rdar://problem/9512733>
944 New member variable on RenderArena keeps track of the current amount of memory
945 allocated in the arena. The new client function sends this piece of data to
947 * page/ChromeClient.h:
948 (WebCore::ChromeClient::setRenderTreeSize):
949 * page/FrameView.cpp:
950 (WebCore::FrameView::performPostLayoutTasks):
951 * rendering/RenderArena.cpp:
952 (WebCore::RenderArena::RenderArena):
953 (WebCore::RenderArena::allocate):
954 (WebCore::RenderArena::free):
955 * rendering/RenderArena.h:
956 (WebCore::RenderArena::totalRenderArenaSize):
958 2011-05-29 Sheriff Bot <webkit.review.bot@gmail.com>
960 Unreviewed, rolling out r87566.
961 http://trac.webkit.org/changeset/87566
962 https://bugs.webkit.org/show_bug.cgi?id=61702
964 It made all tests assert on Qt in debug mode (Requested by
965 Ossy_weekend on #webkit).
968 * bindings/ScriptControllerBase.cpp:
969 (WebCore::ScriptController::executeIfJavaScriptURL):
971 (WebCore::Document::Document):
972 (WebCore::Document::suggestedMIMEType):
973 (WebCore::Document::lastModified):
974 (WebCore::Document::initSecurityContext):
975 (WebCore::Document::updateURLForPushOrReplaceState):
977 (WebCore::Document::setDocumentLoader):
978 (WebCore::Document::loader):
979 * html/MediaDocument.cpp:
980 (WebCore::MediaDocument::replaceMediaElementTimerFired):
981 * html/PluginDocument.cpp:
982 (WebCore::PluginDocumentParser::createDocumentStructure):
983 * platform/mac/HTMLConverter.mm:
984 (fileWrapperForElement):
986 2011-05-28 Steve Falkenburg <sfalken@apple.com>
988 Reviewed by Dan Bernstein.
990 Don't add sub-frames to global history when navigating via back/forward
991 https://bugs.webkit.org/show_bug.cgi?id=61701
992 <rdar://problem/9521222>
994 Instead of just checking whether the load is the first in the frame, we also need to
995 check to make sure we're loading in the main frame.
997 Not testable due to lack of global history infrastructure in DRT.
999 * loader/FrameLoader.cpp:
1000 (WebCore::FrameLoader::transitionToCommitted):
1002 2011-05-28 Alexey Proskuryakov <ap@apple.com>
1004 Suggested by Simon Fraser.
1006 REGRESSION (r85375): Load event is sometimes lost when multiple image elements use the same URL
1007 https://bugs.webkit.org/show_bug.cgi?id=61692
1008 <rdar://problem/9488628>
1010 * loader/ImageLoader.cpp: (WebCore::ImageLoader::notifyFinished): There was no need to use
1013 2011-05-28 Alexey Proskuryakov <ap@apple.com>
1015 Reviewed by Geoff Garen.
1017 REGRESSION (r85375): Load event is sometimes lost when multiple image elements use the same URL
1018 https://bugs.webkit.org/show_bug.cgi?id=61692
1019 <rdar://problem/9488628>
1021 Test: fast/dom/gc-image-element-2.html
1023 Manually verified that tests from bug 59604 and from bug 40926 still pass.
1025 The problem here was that HTMLImageElement::hasPendingActivity() could return false when
1026 a load (or error) event was still expected to fire.
1028 * loader/cache/CachedResource.cpp:
1029 (WebCore::CachedResource::setRequest):
1030 * loader/cache/CachedResource.h:
1031 (WebCore::CachedResource::wasCanceled):
1032 (WebCore::CachedResource::errorOccurred):
1033 Track whether the load was canceled. We want to always notify clients of load outcome,
1034 as that's the only way they could make intelligent decisions.
1036 * dom/ScriptElement.cpp: (WebCore::ScriptElement::execute): Cached resource clients now
1037 get a notifyFinished call on cancellation. Handle this case, where we don't need the
1038 execute the script, but also don't need to fire an error event.
1040 * html/HTMLImageElement.cpp: Moved hasPendingActivity() to header, since it's just a single
1043 * html/HTMLImageElement.h: (WebCore::HTMLImageElement::hasPendingActivity): There is a large
1044 window between when CachedResource::isLoading() becomes false and events are queued.
1045 ImageLoader::haveFiredLoadEvent() is a much better indication of whether we are expecting
1048 * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::onloadTimerFired): Again, don't do
1049 anything on cancellation.
1051 * loader/ImageLoader.cpp:
1052 (WebCore::ImageEventSender::hasPendingEvents): Made it debug-only again, and fixed to
1053 give an accurate result while looping over the list of events to dispatch.
1054 (WebCore::ImageLoader::notifyFinished): Don't do anything when cancelled. We don't want to
1055 switch to a broken image icon, or to dispatch events.
1056 (WebCore::ImageEventSender::dispatchPendingEvents): Clear the current loader from dispatching
1057 list, as the event is no longer pending when it's being dispatched.
1059 * loader/ImageLoader.h: Removed unnecessary hasPendingLoadEvent(). We don't care whether one
1060 is already pending, we only care if one is expected at some time in the future, and
1061 !haveFiredLoadEvent() is our best idea of that.
1063 * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::notifyFinished): Another place to
1064 handle cancellation.
1066 2011-05-28 Adam Barth <abarth@webkit.org>
1068 Reviewed by Alexey Proskuryakov.
1070 Audit all uses of KURL::prettyURL
1071 https://bugs.webkit.org/show_bug.cgi?id=61201
1073 As far as I can tell, all the callers of this API are confused. There
1074 seems to be a cargo cult of using the "pretty" version of a URL, but in
1075 reality folks just want the URL itself. The only case I'm unsure about
1076 is location.href, which could have some compatibility constraints.
1077 I've renamed prettyURL to deprecatedString to discourage folks from
1078 further cargo-culting.
1081 * page/Location.cpp:
1082 (WebCore::Location::href):
1083 (WebCore::Location::toString):
1084 * platform/KURL.cpp:
1085 (WebCore::KURL::deprecatedString):
1087 * platform/KURLGoogle.cpp:
1088 (WebCore::KURL::deprecatedString):
1089 * platform/network/soup/ResourceHandleSoup.cpp:
1090 (WebCore::ResourceHandle::prepareForURL):
1091 * workers/WorkerLocation.cpp:
1092 (WebCore::WorkerLocation::href):
1093 (WebCore::WorkerLocation::toString):
1095 2011-05-28 Jer Noble <jer.noble@apple.com>
1097 Reviewed by Maciej Stachowiak.
1099 Mouse clicks propagate outside full-screen media controls.
1100 https://bugs.webkit.org/show_bug.cgi?id=61689
1102 Mouse click events are propagating out of the media controls, so mouse click
1103 listeners registered on the video element are getting fired when the user
1104 clicks on media controller buttons. By default, block propagation of click
1105 events from MediaControlElements by overriding preDispatchEventHandler, and
1106 convert all instances of defaultEventHandler -> preDispatchEventHandler. Change
1107 all calls of event->setDefaultHandled() to event->stopPropagation().
1109 * html/shadow/MediaControlElements.cpp:
1110 (WebCore::MediaControlElement::preDispatchEventHandler): Added. Block
1111 propagation of all mouse click events.
1112 (WebCore::MediaControlVolumeSliderContainerElement::preDispatchEventHandler):
1113 Renamed from setDefaultHandled.
1114 (WebCore::MediaControlMuteButtonElement::preDispatchEventHandler): Ditto.
1115 (WebCore::MediaControlPanelMuteButtonElement::preDispatchEventHandler): Ditto.
1116 (WebCore::MediaControlPlayButtonElement::preDispatchEventHandler): Ditto.
1117 (WebCore::MediaControlSeekButtonElement::preDispatchEventHandler): Ditto.
1118 (WebCore::MediaControlRewindButtonElement::preDispatchEventHandler): Ditto.
1119 (WebCore::MediaControlReturnToRealtimeButtonElement::preDispatchEventHandler): Ditto.
1120 (WebCore::MediaControlToggleClosedCaptionsButtonElement::preDispatchEventHandler): Ditto.
1121 (WebCore::MediaControlTimelineElement::preDispatchEventHandler): Ditto.
1122 (WebCore::MediaControlVolumeSliderElement::preDispatchEventHandler): Ditto.
1123 (WebCore::MediaControlFullscreenButtonElement::preDispatchEventHandler): Ditto.
1124 (WebCore::MediaControlFullscreenVolumeMinButtonElement::preDispatchEventHandler): Ditto.
1125 (WebCore::MediaControlFullscreenVolumeMaxButtonElement::preDispatchEventHandler): Ditto.
1126 * html/shadow/MediaControlElements.h:
1128 2011-05-28 Gavin Peters <gavinp@chromium.org>
1130 Reviewed by Adam Barth.
1132 prevent HTMLLinkElement from watching multiple CachedResources
1133 https://bugs.webkit.org/show_bug.cgi?id=61686
1135 If we modify an existing link element, stop listening to the previous
1136 cached resource, to prevent double notifications (which crash).
1138 Test: fast/dom/HTMLLinkElement/prefetch-too-many-clients.html
1140 * html/HTMLLinkElement.cpp:
1141 (WebCore::HTMLLinkElement::process):
1143 2011-05-28 Tonis Tiigi <tonistiigi@gmail.com>
1145 Reviewed by Pavel Feldman.
1147 Web Inspector: there is a problem with computed style properties with wrong values
1148 https://bugs.webkit.org/show_bug.cgi?id=60535
1150 * inspector/front-end/StylesSidebarPane.js:
1151 (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
1152 (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
1154 2011-05-26 Antonio Gomes <agomes@rim.com>
1156 Reviewed by Andreas Kling.
1158 Logic error in WebCore/Page/SpatialNavigation.cpp::areRectsPartiallyAligned
1159 https://bugs.webkit.org/show_bug.cgi?id=61606
1161 Removed duplicated statement within if condition.
1163 No new tests. Obvious clean up patch.
1165 * page/SpatialNavigation.cpp:
1166 (WebCore::areRectsPartiallyAligned):
1168 2011-05-27 Simon Fraser <simon.fraser@apple.com>
1170 Reviewed by Dan Bernstein.
1172 CG BitmapImage needs to check for valid CGImage in a couple of places
1173 https://bugs.webkit.org/show_bug.cgi?id=61684
1174 <rdar://problem/9519348>
1176 BitmapImage::getCGImageArray() can throw an exception if frameAtIndex()
1177 returns null, which it may do if the image is corrupted or still
1178 loading. Protect against that here and in getFirstCGImageRefOfSize().
1180 * platform/graphics/cg/ImageCG.cpp:
1181 (WebCore::BitmapImage::getFirstCGImageRefOfSize):
1182 (WebCore::BitmapImage::getCGImageArray):
1184 2011-05-27 Jochen Eisinger <jochen@chromium.org>
1186 Reviewed by Adam Barth.
1188 Add Frame parameter to all StorageArea methods. The chromium
1189 embedder uses the Frame as context to decide whether or not
1190 to allow usage of the storage API.
1191 https://bugs.webkit.org/show_bug.cgi?id=61581
1193 Test: platform/chromium/permissionclient/storage-permission.html
1195 * storage/Storage.cpp:
1196 (WebCore::Storage::length):
1197 (WebCore::Storage::key):
1198 (WebCore::Storage::getItem):
1199 (WebCore::Storage::contains):
1200 * storage/StorageArea.h:
1201 * storage/StorageAreaImpl.cpp:
1202 (WebCore::StorageAreaImpl::length):
1203 (WebCore::StorageAreaImpl::key):
1204 (WebCore::StorageAreaImpl::getItem):
1205 (WebCore::StorageAreaImpl::contains):
1206 * storage/StorageAreaImpl.h:
1208 2011-05-27 Nate Chapin <japhet@chromium.org>
1210 Reviewed by Jian Li.
1212 Keep a reference to BlobResourceHandle before calling doNotifyFinish()
1213 asynchronously to ensure it's still safe in the main thread.
1215 https://bugs.webkit.org/show_bug.cgi?id=61669
1217 I triggered this crash in fast/files/file-reader-abort.html during a
1218 refactor that changed timings slightly.
1220 * platform/network/BlobResourceHandle.cpp:
1221 (WebCore::doNotifyFinish):
1222 (WebCore::BlobResourceHandle::notifyFinish):
1223 * platform/network/BlobResourceHandle.h:
1224 (WebCore::BlobResourceHandle::aborted):
1226 2011-05-27 Stephanie Lewis <slewis@apple.com>
1230 Fix a typo in the order_file flag.
1232 * Configurations/Base.xcconfig:
1234 2011-05-27 Anders Carlsson <andersca@apple.com>
1236 Reviewed by Sam Weinig.
1238 Always use the default localization strategy
1239 https://bugs.webkit.org/show_bug.cgi?id=61670
1240 <rdar://problem/9516130>
1242 Always use the default localization strategy when there's no platform strategy.
1244 * platform/DefaultLocalizationStrategy.cpp:
1245 (WebCore::DefaultLocalizationStrategy::shared):
1246 * platform/DefaultLocalizationStrategy.h:
1247 * platform/LocalizedStrings.cpp:
1248 (WebCore::inputElementAltText):
1249 (WebCore::resetButtonDefaultLabel):
1250 (WebCore::searchableIndexIntroduction):
1251 (WebCore::submitButtonDefaultLabel):
1252 (WebCore::fileButtonChooseFileLabel):
1253 (WebCore::fileButtonNoFileSelectedLabel):
1254 (WebCore::defaultDetailsSummaryText):
1255 (WebCore::copyImageUnknownFileLabel):
1256 (WebCore::contextMenuItemTagOpenLinkInNewWindow):
1257 (WebCore::contextMenuItemTagDownloadLinkToDisk):
1258 (WebCore::contextMenuItemTagCopyLinkToClipboard):
1259 (WebCore::contextMenuItemTagOpenImageInNewWindow):
1260 (WebCore::contextMenuItemTagDownloadImageToDisk):
1261 (WebCore::contextMenuItemTagCopyImageToClipboard):
1262 (WebCore::contextMenuItemTagCopyImageUrlToClipboard):
1263 (WebCore::contextMenuItemTagOpenFrameInNewWindow):
1264 (WebCore::contextMenuItemTagCopy):
1265 (WebCore::contextMenuItemTagGoBack):
1266 (WebCore::contextMenuItemTagGoForward):
1267 (WebCore::contextMenuItemTagStop):
1268 (WebCore::contextMenuItemTagReload):
1269 (WebCore::contextMenuItemTagCut):
1270 (WebCore::contextMenuItemTagPaste):
1271 (WebCore::contextMenuItemTagSelectAll):
1272 (WebCore::contextMenuItemTagNoGuessesFound):
1273 (WebCore::contextMenuItemTagIgnoreSpelling):
1274 (WebCore::contextMenuItemTagLearnSpelling):
1275 (WebCore::contextMenuItemTagSearchInSpotlight):
1276 (WebCore::contextMenuItemTagSearchWeb):
1277 (WebCore::contextMenuItemTagLookUpInDictionary):
1278 (WebCore::contextMenuItemTagOpenLink):
1279 (WebCore::contextMenuItemTagIgnoreGrammar):
1280 (WebCore::contextMenuItemTagSpellingMenu):
1281 (WebCore::contextMenuItemTagShowSpellingPanel):
1282 (WebCore::contextMenuItemTagCheckSpelling):
1283 (WebCore::contextMenuItemTagCheckSpellingWhileTyping):
1284 (WebCore::contextMenuItemTagCheckGrammarWithSpelling):
1285 (WebCore::contextMenuItemTagFontMenu):
1286 (WebCore::contextMenuItemTagShowFonts):
1287 (WebCore::contextMenuItemTagBold):
1288 (WebCore::contextMenuItemTagItalic):
1289 (WebCore::contextMenuItemTagUnderline):
1290 (WebCore::contextMenuItemTagOutline):
1291 (WebCore::contextMenuItemTagStyles):
1292 (WebCore::contextMenuItemTagShowColors):
1293 (WebCore::contextMenuItemTagSpeechMenu):
1294 (WebCore::contextMenuItemTagStartSpeaking):
1295 (WebCore::contextMenuItemTagStopSpeaking):
1296 (WebCore::contextMenuItemTagWritingDirectionMenu):
1297 (WebCore::contextMenuItemTagTextDirectionMenu):
1298 (WebCore::contextMenuItemTagDefaultDirection):
1299 (WebCore::contextMenuItemTagLeftToRight):
1300 (WebCore::contextMenuItemTagRightToLeft):
1301 (WebCore::contextMenuItemTagCorrectSpellingAutomatically):
1302 (WebCore::contextMenuItemTagSubstitutionsMenu):
1303 (WebCore::contextMenuItemTagShowSubstitutions):
1304 (WebCore::contextMenuItemTagSmartCopyPaste):
1305 (WebCore::contextMenuItemTagSmartQuotes):
1306 (WebCore::contextMenuItemTagSmartDashes):
1307 (WebCore::contextMenuItemTagSmartLinks):
1308 (WebCore::contextMenuItemTagTextReplacement):
1309 (WebCore::contextMenuItemTagTransformationsMenu):
1310 (WebCore::contextMenuItemTagMakeUpperCase):
1311 (WebCore::contextMenuItemTagMakeLowerCase):
1312 (WebCore::contextMenuItemTagCapitalize):
1313 (WebCore::contextMenuItemTagChangeBack):
1314 (WebCore::contextMenuItemTagOpenVideoInNewWindow):
1315 (WebCore::contextMenuItemTagOpenAudioInNewWindow):
1316 (WebCore::contextMenuItemTagCopyVideoLinkToClipboard):
1317 (WebCore::contextMenuItemTagCopyAudioLinkToClipboard):
1318 (WebCore::contextMenuItemTagToggleMediaControls):
1319 (WebCore::contextMenuItemTagToggleMediaLoop):
1320 (WebCore::contextMenuItemTagEnterVideoFullscreen):
1321 (WebCore::contextMenuItemTagMediaPlay):
1322 (WebCore::contextMenuItemTagMediaPause):
1323 (WebCore::contextMenuItemTagMediaMute):
1324 (WebCore::contextMenuItemTagInspectElement):
1325 (WebCore::searchMenuNoRecentSearchesText):
1326 (WebCore::searchMenuRecentSearchesText):
1327 (WebCore::searchMenuClearRecentSearchesText):
1328 (WebCore::AXWebAreaText):
1329 (WebCore::AXLinkText):
1330 (WebCore::AXListMarkerText):
1331 (WebCore::AXImageMapText):
1332 (WebCore::AXHeadingText):
1333 (WebCore::AXDefinitionListTermText):
1334 (WebCore::AXDefinitionListDefinitionText):
1335 (WebCore::AXARIAContentGroupText):
1336 (WebCore::AXButtonActionVerb):
1337 (WebCore::AXRadioButtonActionVerb):
1338 (WebCore::AXTextFieldActionVerb):
1339 (WebCore::AXCheckedCheckBoxActionVerb):
1340 (WebCore::AXUncheckedCheckBoxActionVerb):
1341 (WebCore::AXLinkActionVerb):
1342 (WebCore::AXMenuListPopupActionVerb):
1343 (WebCore::AXMenuListActionVerb):
1344 (WebCore::missingPluginText):
1345 (WebCore::crashedPluginText):
1346 (WebCore::multipleFileUploadText):
1347 (WebCore::unknownFileSizeText):
1348 (WebCore::uploadFileText):
1349 (WebCore::allFilesText):
1350 (WebCore::keygenMenuItem512):
1351 (WebCore::keygenMenuItem1024):
1352 (WebCore::keygenMenuItem2048):
1353 (WebCore::keygenKeychainItemName):
1354 (WebCore::imageTitle):
1355 (WebCore::mediaElementLoadingStateText):
1356 (WebCore::mediaElementLiveBroadcastStateText):
1357 (WebCore::localizedMediaControlElementString):
1358 (WebCore::localizedMediaControlElementHelpText):
1359 (WebCore::localizedMediaTimeDescription):
1360 (WebCore::validationMessageValueMissingText):
1361 (WebCore::validationMessageValueMissingForCheckboxText):
1362 (WebCore::validationMessageValueMissingForFileText):
1363 (WebCore::validationMessageValueMissingForMultipleFileText):
1364 (WebCore::validationMessageValueMissingForRadioText):
1365 (WebCore::validationMessageValueMissingForSelectText):
1366 (WebCore::validationMessageTypeMismatchText):
1367 (WebCore::validationMessageTypeMismatchForEmailText):
1368 (WebCore::validationMessageTypeMismatchForMultipleEmailText):
1369 (WebCore::validationMessageTypeMismatchForURLText):
1370 (WebCore::validationMessagePatternMismatchText):
1371 (WebCore::validationMessageTooLongText):
1372 (WebCore::validationMessageRangeUnderflowText):
1373 (WebCore::validationMessageRangeOverflowText):
1374 (WebCore::validationMessageStepMismatchText):
1376 2011-05-27 Brady Eidson <beidson@apple.com>
1378 Reviewed by Darin Adler.
1380 First swipe at resolving <rdar://problem/9125145> and https://bugs.webkit.org/show_bug.cgi?id=61494
1382 Make the Document be intelligent about returning its DocumentLoader, including the possibility that
1383 the DocumentLoader will be null.
1385 No new tests. No change in behavior.
1387 Instead of storing the DocumentLoader at construction and never changing it,
1388 always calculate it based on the FrameLoader's current DocumentLoader:
1390 (WebCore::Document::Document):
1391 (WebCore::Document::suggestedMIMEType):
1392 (WebCore::Document::lastModified):
1393 (WebCore::Document::initSecurityContext):
1394 (WebCore::Document::updateURLForPushOrReplaceState):
1395 (WebCore::Document::loader):
1398 Null-check or ASSERT that the DocumentLoader exists (or both) depending on the scenario:
1399 * bindings/ScriptControllerBase.cpp:
1400 (WebCore::ScriptController::executeIfJavaScriptURL):
1401 * html/MediaDocument.cpp:
1402 (WebCore::MediaDocument::replaceMediaElementTimerFired):
1403 * html/PluginDocument.cpp:
1404 (WebCore::PluginDocumentParser::createDocumentStructure):
1405 * platform/mac/HTMLConverter.mm:
1406 (fileWrapperForElement):
1410 2011-05-27 Jer Noble <jer.noble@apple.com>
1412 Reviewed by Maciej Stachowiak.
1414 30 second rewind button obscured in fullscreen controller
1415 https://bugs.webkit.org/show_bug.cgi?id=61663
1417 If reset() is called while in full-screen mode, make sure to show and hide
1418 the correct controls for that mode.
1420 * html/shadow/MediaControlRootElement.cpp:
1421 (WebCore::MediaControlRootElement::reset):
1423 2011-05-27 James Robinson <jamesr@chromium.org>
1425 Reviewed by Simon Fraser.
1427 GraphicsLayers for overflow controls on iframe without clipping layer left out of layer tree
1428 https://bugs.webkit.org/show_bug.cgi?id=61590
1430 Adds overflow control layers to the compositor tree for layers without clipping layers regardless of whether the
1431 backing is parented. This ensures that the scroll corner layer for an iframe without a clipping layer ends up
1432 in the final layer tree. We don't currently render resizers for iframes, but we will soon and this keeps the
1433 graphics layer tree consistent.
1435 Test: compositing/iframes/resizer.html
1437 * rendering/RenderLayerCompositor.cpp:
1438 (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1440 2011-05-27 Adam Barth <abarth@webkit.org>
1442 Reviewed by Eric Seidel.
1444 HTMLVideoElement::currentSrc() should return a KURL
1445 https://bugs.webkit.org/show_bug.cgi?id=61578
1447 I suspect we got into this mess because the author of this code didn't
1448 know about the URL attribute in WebKit IDL, which is super useful!
1450 Bad news: The line of code in question seems to have another bug, which
1451 I've documented in a FIXME. Let the yak shaving continue!
1453 * html/HTMLMediaElement.cpp:
1454 (WebCore::urlForLogging):
1455 (WebCore::HTMLMediaElement::loadResource):
1456 (WebCore::HTMLMediaElement::isSafeToLoadURL):
1457 (WebCore::HTMLMediaElement::selectNextSourceChild):
1458 (WebCore::HTMLMediaElement::getPluginProxyParams):
1459 * html/HTMLMediaElement.h:
1460 (WebCore::HTMLMediaElement::currentSrc):
1461 (WebCore::HTMLMediaElement::currentURL):
1462 * html/canvas/CanvasRenderingContext.cpp:
1463 (WebCore::CanvasRenderingContext::checkOrigin):
1464 * rendering/HitTestResult.cpp:
1465 (WebCore::HitTestResult::absoluteMediaURL):
1466 - This complete URL call was unnecessary because currentSrc is
1469 2011-05-27 Mikhail Naganov <mnaganov@chromium.org>
1471 Reviewed by Pavel Feldman.
1473 Web Inspector: [Chromium] Add support for showing URL of DOMWindow in heap profiles.
1474 https://bugs.webkit.org/show_bug.cgi?id=61177
1476 * inspector/front-end/HeapSnapshot.js:
1477 (WebInspector.HeapSnapshotNode.prototype.get className):
1479 2011-05-27 Nikolas Zimmermann <nzimmermann@rim.com>
1481 Rubber-stamped by Rob Buis.
1483 embedded SVG object doesn't scale right
1484 https://bugs.webkit.org/show_bug.cgi?id=10526
1486 Fixes crash in svg/custom/immutable-properties.html, seen on the bots.
1488 * svg/SVGLength.cpp:
1489 (WebCore::SVGLength::determineViewport): Oops forgot to merge-in a null check before landing.
1491 2011-05-27 Nikolas Zimmermann <nzimmermann@rim.com>
1493 Reviewed by Rob Buis.
1495 embedded SVG object doesn't scale right
1496 https://bugs.webkit.org/show_bug.cgi?id=10526
1498 <object> tags should treat width/height on a referenced SVG as intrinsic width/height
1499 https://bugs.webkit.org/show_bug.cgi?id=11976
1501 Incorrect handling of percentage values for width/height on embedded elements
1502 https://bugs.webkit.org/show_bug.cgi?id=14793
1504 WebKit fails some WICD 1.0 core test cases
1505 https://bugs.webkit.org/show_bug.cgi?id=15836 (partially fixed, all 'rightsizing' tests are fixed)
1507 CSS 2.1: Support replaced elements with relative intrinsic sizes
1508 https://bugs.webkit.org/show_bug.cgai?id=15849 (partially fixed)
1510 SVG embedded as <object> doesn't respect width/height attributes
1511 https://bugs.webkit.org/show_bug.cgi?id=34972
1513 Explicit size of object tag ignored
1514 https://bugs.webkit.org/show_bug.cgi?id=37086
1516 Add partial support of CSS 2.1 replaced elements with intrinsic size. The feature itself is complete but has only
1517 been implemented for RenderPart, to support SVG content document size negotiation. It serves as starting point for a generalization, in future.
1518 The changes in RenderPart are a 1:1 transliteration of the spec (http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-width/height, see code).
1521 The 'width' attribute on the outermost svg element establishes the viewport's width, unless the following conditions are met:
1523 and there are CSS-compatible positioning properties ([CSS2], section 9.3) specified on the referencing element (e.g., the 'object' element)
1524 or on the containing document's outermost svg element that are sufficient to establish the width of the viewport. Under these conditions,
1525 the positioning properties establish the viewport's width.
1527 If an <object> carries width/height attributes, these specify the viewport size of the embedded SVG, instead of its own
1528 width/height or viewBox properties. If an <object> has no width/height information, its intrinsic size needs to be calculated depending
1529 on the intrinsic ratio (viewBox width divided by height ratio) and the width/height properties on the outermost referenced <svg> element.
1530 This requires a negotiation between the host document and the embedded document.
1531 (There are several more factors that need to be considered, the CSS spec covers this and the RenderPart::computeReplaced* code covers this.)
1533 Fixes dozens of long-standing bug reports. The number one integration issue when using SVG through <object> is resolved: "right sizing".
1535 Tests: http/tests/misc/object-embedding-svg-delayed-size-negotiation.xhtml
1536 svg/custom/object-no-size-attributes.xhtml (bug 11976, from Eric Seidel)
1537 svg/custom/object-sizing-explicit-height.xhtml (bug 10526, from Ryan Cannon)
1538 svg/custom/object-sizing-explicit-width-height.xhtml
1539 svg/custom/object-sizing-explicit-width.xhtml (bug 14793, from Oliver Hunt)
1540 svg/custom/object-sizing-no-width-height-change-content-box-size.xhtml
1541 svg/custom/object-sizing-no-width-height.xhtml
1542 svg/custom/object-sizing.xhtml (bug 37086, from Jeff Schiller)
1543 svg/wicd/rightsizing-grid.xhtml (bug 15836, WICD rightsizing test now works)
1544 svg/wicd/test-rightsizing-a.xhtml (ditto)
1545 svg/wicd/test-rightsizing-b.xhtml (ditto)
1546 svg/zoom/page/zoom-svg-through-object-with-absolute-size-2.xhtml
1547 svg/zoom/page/zoom-svg-through-object-with-absolute-size.xhtml
1548 svg/zoom/page/zoom-svg-through-object-with-huge-size.xhtml
1549 svg/zoom/page/zoom-svg-through-object-with-override-size.html (bug 34972, from Andreas Kling)
1550 svg/zoom/page/zoom-svg-through-object-with-percentage-size.xhtml
1551 svg/zoom/page/zoom-svg-through-object-with-text.xhtml
1553 * platform/Length.h:
1554 (WebCore::Length::isSpecified):
1555 * rendering/RenderPart.cpp:
1556 (WebCore::RenderPart::embeddedSVGContentRenderer):
1557 (WebCore::RenderPart::computeEmbeddedDocumentReplacedWidth):
1558 (WebCore::RenderPart::computeEmbeddedDocumentReplacedHeight):
1559 (WebCore::RenderPart::computeReplacedLogicalWidth):
1560 (WebCore::RenderPart::computeReplacedLogicalHeight):
1561 (WebCore::RenderPart::layout):
1562 * rendering/RenderPart.h:
1563 * rendering/RenderReplaced.cpp:
1564 (WebCore::RenderReplaced::computeReplacedLogicalWidth):
1565 (WebCore::RenderReplaced::computeReplacedLogicalHeight):
1566 * rendering/svg/RenderSVGRoot.cpp:
1567 (WebCore::RenderSVGRoot::RenderSVGRoot):
1568 (WebCore::RenderSVGRoot::computeIntrinsicRatio):
1569 (WebCore::RenderSVGRoot::computeIntrinsicWidth):
1570 (WebCore::RenderSVGRoot::computeIntrinsicHeight):
1571 (WebCore::RenderSVGRoot::negotiateSizeWithHostDocumentIfNeeded):
1572 (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
1573 (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
1574 (WebCore::RenderSVGRoot::layout):
1575 * rendering/svg/RenderSVGRoot.h:
1576 * svg/SVGLength.cpp:
1577 (WebCore::SVGLength::determineViewport):
1578 * svg/SVGSVGElement.cpp:
1579 (WebCore::SVGSVGElement::currentScale):
1580 (WebCore::SVGSVGElement::setCurrentScale):
1581 (WebCore::SVGSVGElement::currentViewBoxRect):
1582 (WebCore::SVGSVGElement::viewBoxToViewTransform):
1583 * svg/SVGSVGElement.h:
1585 2011-05-27 Michael Saboff <msaboff@apple.com>
1587 Reviewed by David Hyatt.
1589 https://bugs.webkit.org/show_bug.cgi?id=61646
1590 Duplicate Fonts Put in Font Cache on Mac Due to Duplicate CGFontRefs for Same Font
1592 Change the platformIsEqual to just compare the m_font members if
1595 No tests added - functionality unchanged, fixing memory abandonment.
1597 * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1598 (WebCore::FontPlatformData::platformIsEqual):
1600 2011-05-25 Martin Robinson <mrobinson@igalia.com>
1602 Reviewed by Dirk Schulze.
1604 [GTK][Cairo] Twitter rendering breaks
1605 https://bugs.webkit.org/show_bug.cgi?id=60917
1607 When instantiating a cairo_scaled_font_t font would put the font in an error state,
1608 leave the m_scaledFont member of platform data as null. Rendering with scaled fonts
1609 in the error state can later lead to corrupted rendering.
1611 Due to this change, we must always null check cairo_scaled_font_t and the platform
1612 data now carries the cairo_font_face_t object with it, so that it can be accessed later
1613 if there is no cairo_scaled_font_t.
1615 Test: platform/gtk/fonts/zero-pixel-sized-fonts.html
1617 * platform/graphics/cairo/FontCairo.cpp:
1618 (WebCore::Font::drawGlyphs): If the scaled font is null, do not render.
1619 * platform/graphics/freetype/FontPlatformData.h: Now include the cairo_font_face_t.
1620 * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
1621 (WebCore::FontPlatformData::FontPlatformData): Initialize the new member.
1622 (WebCore::FontPlatformData::operator=): Carry over the new member.
1623 (WebCore::FontPlatformData::operator==): Check equality with the new member.
1624 (WebCore::FontPlatformData::initializeWithFontFace): If the initialization of m_scaledFont
1625 put the font into an error state, then just free it and return.
1626 (WebCore::FontPlatformData::hasCompatibleCharmap): The font always has a compatible charmap
1627 when the scaled font is null, because rendering is always a no-op and the font data never
1629 * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
1630 (WebCore::GlyphPage::fill): Don't read font data when the scaled font is null.
1631 * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
1632 (WebCore::SimpleFontData::platformInit): Return early when there's no scaled font.
1633 (WebCore::SimpleFontData::scaledFontData): Use the new m_font member.
1634 (WebCore::SimpleFontData::containsCharacters): Return early when there's no scaled font.
1635 (WebCore::SimpleFontData::platformWidthForGlyph): Ditto.
1637 2011-05-27 David Levin <levin@chromium.org>
1639 Reviewed by Darin Fisher.
1641 Need a callback for when the preferred rendered size may have changed.
1642 https://bugs.webkit.org/show_bug.cgi?id=61309
1644 No new tests needed since no new functionality is exposed.
1647 (WebCore::Chrome::layoutUpdated): Plumbed through the call.
1648 * page/Chrome.h: Added the new method.
1649 * page/ChromeClient.h:
1650 (WebCore::ChromeClient::layoutUpdated): Ditto.
1651 * page/FrameView.cpp:
1652 (WebCore::FrameView::layout): Added a callback for whem a layout has finished.
1654 2011-05-27 Stephanie Lewis <slewis@apple.com>
1656 Rubber Stamped by Adam Roben.
1658 Update Order Files. Use -order_file flag since it can order more of the binary.
1660 * Configurations/Base.xcconfig:
1663 2011-05-27 Sheriff Bot <webkit.review.bot@gmail.com>
1665 Unreviewed, rolling out r87464.
1666 http://trac.webkit.org/changeset/87464
1667 https://bugs.webkit.org/show_bug.cgi?id=61643
1669 client-close/server-close tests are flaky on Chromium Mac and
1670 Windows (Requested by aklein on #webkit).
1672 * platform/network/SocketStreamHandleBase.cpp:
1673 (WebCore::SocketStreamHandleBase::send):
1674 (WebCore::SocketStreamHandleBase::close):
1675 (WebCore::SocketStreamHandleBase::sendPendingData):
1676 * platform/network/SocketStreamHandleBase.h:
1677 * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
1678 (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
1679 (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
1680 * websockets/ThreadableWebSocketChannelClientWrapper.h:
1681 * websockets/WebSocket.cpp:
1682 (WebCore::WebSocket::send):
1683 (WebCore::WebSocket::close):
1684 (WebCore::WebSocket::bufferedAmount):
1685 (WebCore::WebSocket::didConnect):
1686 (WebCore::WebSocket::didReceiveMessage):
1687 (WebCore::WebSocket::didReceiveMessageError):
1688 (WebCore::WebSocket::didClose):
1689 * websockets/WebSocket.h:
1690 * websockets/WebSocketChannel.cpp:
1691 (WebCore::WebSocketChannel::WebSocketChannel):
1692 (WebCore::WebSocketChannel::close):
1693 (WebCore::WebSocketChannel::disconnect):
1694 (WebCore::WebSocketChannel::didClose):
1695 (WebCore::WebSocketChannel::didReceiveData):
1696 (WebCore::WebSocketChannel::didFail):
1697 (WebCore::WebSocketChannel::processBuffer):
1698 * websockets/WebSocketChannel.h:
1699 * websockets/WebSocketChannelClient.h:
1700 (WebCore::WebSocketChannelClient::didClose):
1701 * websockets/WorkerThreadableWebSocketChannel.cpp:
1702 (WebCore::WorkerThreadableWebSocketChannel::Peer::close):
1703 (WebCore::workerContextDidClose):
1704 (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
1705 * websockets/WorkerThreadableWebSocketChannel.h:
1707 2011-05-27 Rob Buis <rbuis@rim.com>
1709 Reviewed by Nikolas Zimmermann.
1711 https://bugs.webkit.org/show_bug.cgi?id=19995
1712 hixie.ch : anchor Link fails with fragment identifiers inside SVG fragments.
1714 Only allow links to animation elements within the document.
1716 Test: svg/hixie/links/003.xml
1718 * svg/SVGAElement.cpp:
1719 (WebCore::SVGAElement::defaultEventHandler):
1721 2011-05-27 Andreas Kling <kling@webkit.org>
1723 Reviewed by Benjamin Poulain.
1725 Update RGBA color serialization to match HTML5.
1726 https://bugs.webkit.org/show_bug.cgi?id=61449
1728 HTML5 now specifies that fully transparent colors should have their alpha value
1729 serialized to "0" rather than "0.0" (followed by any number of extra zeroes.)
1731 The number of decimals for alpha values between 0 and 1 is not specified,
1732 so match Gecko and Presto by returning the lowest number of decimals needed
1733 to represent the number. (No more trailing zeroes.)
1735 * platform/graphics/Color.cpp:
1736 (WebCore::Color::serialized):
1738 2011-05-27 Hans Wennborg <hans@chromium.org>
1740 Reviewed by Tony Gentilcore.
1742 IndexedDB: Support mutating cursors on top of LevelDB
1743 https://bugs.webkit.org/show_bug.cgi?id=61615
1745 We need to support the case where a new node is added to the tree in a
1746 transaction after the TreeIterator has covered the whole tree.
1748 Since this is done lazily, i.e. we set a flag that the tree might have
1749 changed, and act upon it later, some members need to be mutable,
1750 because we might need to re-seek the tree iterator in a const function.
1752 Test: storage/indexeddb/mutating-cursor.html
1753 storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html (existing)
1755 * platform/leveldb/LevelDBTransaction.cpp:
1756 (WebCore::LevelDBTransaction::set):
1757 (WebCore::LevelDBTransaction::TreeIterator::reset):
1758 (WebCore::LevelDBTransaction::TreeIterator::~TreeIterator):
1759 (WebCore::LevelDBTransaction::TreeIterator::TreeIterator):
1760 (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
1761 (WebCore::LevelDBTransaction::TransactionIterator::~TransactionIterator):
1762 (WebCore::LevelDBTransaction::TransactionIterator::next):
1763 (WebCore::LevelDBTransaction::TransactionIterator::prev):
1764 (WebCore::LevelDBTransaction::TransactionIterator::key):
1765 (WebCore::LevelDBTransaction::TransactionIterator::value):
1766 (WebCore::LevelDBTransaction::TransactionIterator::treeChanged):
1767 (WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
1768 (WebCore::LevelDBTransaction::registerIterator):
1769 (WebCore::LevelDBTransaction::unregisterIterator):
1770 (WebCore::LevelDBTransaction::notifyIteratorsOfTreeChange):
1771 * platform/leveldb/LevelDBTransaction.h:
1772 * storage/IDBFactoryBackendImpl.cpp:
1773 (WebCore::IDBFactoryBackendImpl::open):
1774 * storage/IDBLevelDBBackingStore.cpp:
1775 (WebCore::IDBLevelDBBackingStore::open):
1777 2011-05-27 Sujin Park <sujjin.park@gmail.com>
1779 Unreviewed, buildfix if --no-javascript-debugger.
1781 Regression(R84125): Broke GTK build
1782 https://bugs.webkit.org/show_bug.cgi?id=60698
1784 No new tests since this doesn't change any behavior.
1786 * inspector/WorkerInspectorController.h:
1788 2011-05-26 Yael Aharon <yael.aharon@nokia.com>
1790 Reviewed by Tony Chang.
1792 webkit should implement the dropzone attribute
1793 https://bugs.webkit.org/show_bug.cgi?id=58210
1795 Add support for dropzone attribute.
1796 http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#the-dropzone-attribute
1797 If a drag event was not canceled by JavaScript, look for an element with a dropzone attribute.
1798 If there is such an element, and it matches the drag data store, set the action defined by that
1799 element and continue processing the drag and drop operation.
1801 Tests: fast/events/dropzone-001.html
1802 fast/events/dropzone-002.html
1803 fast/events/dropzone-003.html
1804 fast/events/dropzone-004.html
1806 * dom/Clipboard.cpp:
1807 (WebCore::Clipboard::hasFileOfType):
1808 (WebCore::Clipboard::hasStringOfType):
1809 (WebCore::convertDropZoneOperationToDragOperation):
1810 (WebCore::convertDragOperationToDropZoneOperation):
1811 (WebCore::Clipboard::processDropZoneKeyword):
1813 * html/HTMLAttributeNames.in:
1814 * html/HTMLElement.idl:
1815 * page/EventHandler.cpp:
1816 (WebCore::EventHandler::findDropZone):
1817 (WebCore::EventHandler::updateDragAndDrop):
1818 * page/EventHandler.h:
1820 2011-05-27 Patrick Gansterer <paroga@webkit.org>
1822 Unreviewed WinCE build fix for r87467.
1824 * page/wince/FrameWinCE.cpp:
1826 2011-05-26 Hans Wennborg <hans@chromium.org>
1828 Reviewed by Tony Gentilcore.
1830 IndexedDB: Support NO_DUPLICATE cursors on LevelDB back-end
1831 https://bugs.webkit.org/show_bug.cgi?id=61517
1833 Support cursors where the direction is set to NEXT_NO_DUPLICATE,
1834 or PREV_NO_DUPLICATE, as specified here:
1835 http://www.w3.org/TR/IndexedDB/#widl-IDBCursor-NEXT_NO_DUPLICATE
1837 This is tested by storage/indexeddb/mozilla/indexes.html
1839 * storage/IDBLevelDBBackingStore.cpp:
1840 (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
1841 (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
1842 (WebCore::IDBLevelDBBackingStore::openIndexCursor):
1844 2011-05-26 Hans Wennborg <hans@chromium.org>
1846 Reviewed by Tony Gentilcore.
1848 LevelDB: turn on paranoid checks and verify checksums, log errors
1849 https://bugs.webkit.org/show_bug.cgi?id=61516
1851 This allows for detection of corrupted databases.
1852 Even if we can't recover from a corrupted database, discovering the
1853 problem is a step in the right direction.
1855 No new functionality, no new tests.
1857 * platform/leveldb/LevelDBDatabase.cpp:
1858 (WebCore::LevelDBDatabase::open):
1859 (WebCore::LevelDBDatabase::put):
1860 (WebCore::LevelDBDatabase::remove):
1861 (WebCore::LevelDBDatabase::get):
1862 (WebCore::LevelDBDatabase::write):
1863 (WebCore::IteratorImpl::checkStatus):
1864 (WebCore::IteratorImpl::seekToLast):
1865 (WebCore::IteratorImpl::seek):
1866 (WebCore::IteratorImpl::next):
1867 (WebCore::IteratorImpl::prev):
1868 (WebCore::LevelDBDatabase::createIterator):
1870 2011-05-27 James Robinson <jamesr@chromium.org>
1872 Reviewed by Adam Barth.
1874 CachedResourceLoader stores data: urls in validated URL set
1875 https://bugs.webkit.org/show_bug.cgi?id=61604
1877 CachedResourceLoader maintains a set of URLs that have been validated to avoid validating the same resource
1878 multiple times for loads within the same document. This doesn't make sense for data: URLs and just wastes
1881 * loader/cache/CachedResourceLoader.cpp:
1882 (WebCore::CachedResourceLoader::revalidateResource):
1883 (WebCore::CachedResourceLoader::loadResource):
1885 2011-05-23 MORITA Hajime <morrita@google.com>
1887 Reviewed by Tony Chang.
1889 [Refactoring] DocumentMarker should be carried around as a pointer, not value.
1890 https://bugs.webkit.org/show_bug.cgi?id=61262
1892 - Changed return value of markersInRange() from Vector<DocumentMarker> to Vector<DocumentMarker*>.
1893 - Introduced markersFor() that returns Vector<DocumentMarker*>
1894 - Removed DocumentMarkerController::setRenderedRectForMarker() which now can be replaced by
1895 RenderedDocumentMarker::setRenderedRect().
1896 - This change didn't remove markersForNode() beucase there is patches on review which depends
1897 markersForNode(). I'll remove its call after these patches are landed.
1899 No new tests. No behavior change.
1902 * dom/DocumentMarkerController.cpp:
1903 (WebCore::DocumentMarkerController::addTextMatchMarker):
1904 (WebCore::DocumentMarkerController::markersFor):
1905 (WebCore::DocumentMarkerController::markersInRange):
1906 (WebCore::DocumentMarkerController::hasMarkers):
1907 * dom/DocumentMarkerController.h:
1908 * dom/RenderedDocumentMarker.h:
1909 (WebCore::toRenderedDocumentMarker):
1910 * editing/CompositeEditCommand.cpp:
1911 (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
1912 * editing/DeleteSelectionCommand.cpp:
1913 (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
1914 * editing/Editor.cpp:
1915 (WebCore::Editor::selectionStartHasMarkerFor):
1916 * editing/SpellingCorrectionController.cpp:
1917 (WebCore::markersHaveIdenticalDescription):
1918 (WebCore::SpellingCorrectionController::respondToChangedSelection):
1919 (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection):
1920 (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult):
1921 * editing/SpellingCorrectionController.h:
1922 (WebCore::SpellingCorrectionController::shouldStartTimerFor):
1923 * rendering/InlineTextBox.cpp:
1924 (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
1925 (WebCore::InlineTextBox::paintTextMatchMarker):
1926 (WebCore::InlineTextBox::computeRectForReplacementMarker):
1927 (WebCore::InlineTextBox::paintDocumentMarkers):
1928 * rendering/InlineTextBox.h:
1929 * rendering/svg/SVGInlineFlowBox.cpp:
1930 (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
1932 2011-05-26 MORITA Hajime <morrita@google.com>
1934 Reviewed by Kent Tamura.
1936 WebCore::HTMLSummaryElement::isMainSummary ReadAV@NULL
1937 https://bugs.webkit.org/show_bug.cgi?id=61511
1939 Removed Unnecessary wrong cast to Elmement, which can be non-Element.
1941 Test: fast/html/details-summary-document-child.html
1943 * html/HTMLSummaryElement.cpp:
1944 (WebCore::HTMLSummaryElement::detailsElement):
1946 2011-05-26 Adam Barth <abarth@webkit.org>
1948 Reviewed by Ryosuke Niwa.
1950 FrameLoader cannot be null
1951 https://bugs.webkit.org/show_bug.cgi?id=61609
1953 This code has a bunch of cargo-cult null checking.
1955 * html/HTMLMediaElement.cpp:
1956 (WebCore::HTMLMediaElement::createRenderer):
1957 (WebCore::HTMLMediaElement::attach):
1958 (WebCore::HTMLMediaElement::loadResource):
1959 (WebCore::HTMLMediaElement::getPluginProxyParams):
1960 (WebCore::HTMLMediaElement::createMediaPlayerProxy):
1961 (WebCore::HTMLMediaElement::updateWidget):
1963 2011-05-26 Shane Stephens <shanestephens@google.com>
1965 Reviewed by James Robinson.
1967 REGRESSION (r81992): layout triggered by position update fails to apply when transform is updated at same time
1968 https://bugs.webkit.org/show_bug.cgi?id=60689
1970 When a transform is modified in a style, we were upgrading our understanding
1971 of the difference from PositionedMovementOnly to SimplifiedLayout. However,
1972 if the position of the style is independently changed at the same time, both
1973 PositionedMovement and SimplifiedLayout passes are required.
1975 Test: transforms/2d/set-transform-and-top.html
1977 * rendering/RenderObject.cpp:
1978 Added checks for SimplifiedLayoutAndPositionedMovement - when encountered,
1979 set both PositionedMovement and SimplifiedLayout update flasgs.
1980 * rendering/style/RenderStyleConstants.h:
1981 Added a new StyleDifference enum value (SimplifiedLayoutAndPositionedMovement) for
1982 cases when both PositionedMovement and SimplifiedLayout are required.
1984 2011-05-26 Luke Macpherson <macpherson@chromium.org>
1986 Reviewed by Eric Seidel.
1988 Implement webkit margin collapse CSS properties in CSSStyleApplyProperty
1989 https://bugs.webkit.org/show_bug.cgi?id=61589
1991 No new tests as no new functionality added.
1993 * css/CSSStyleApplyProperty.cpp:
1994 (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1996 CSSPropertyWebkitMarginBeforeCollapse
1997 CSSPropertyWebkitMarginAfterCollapse
1998 CSSPropertyWebkitMarginTopCollapse
1999 CSSPropertyWebkitMarginBottomCollapse
2000 CSSPropertyWebkitMarginCollapse
2001 * css/CSSStyleSelector.cpp:
2002 (WebCore::CSSStyleSelector::applyProperty):
2003 Remove cases that are no longer required.
2005 2011-05-26 Adam Barth <abarth@webkit.org>
2007 Reviewed by Eric Seidel.
2009 Support cross-origin property for images
2010 https://bugs.webkit.org/show_bug.cgi?id=61015
2012 This patch add support for the crossorigin attribute of images and
2013 teaches 2D canvas to respect that flag and not taint a canvas if the
2014 image drawn on the canvas is allowed by CORS.
2016 While I was editing this code, I couldn't resist a couple touch-up
2019 Tests: http/tests/security/canvas-remote-read-remote-image-allowed-with-credentials.html
2020 http/tests/security/canvas-remote-read-remote-image-allowed.html
2021 http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin.html
2023 * html/HTMLAttributeNames.in:
2024 * html/HTMLCanvasElement.cpp:
2025 (WebCore::HTMLCanvasElement::securityOrigin):
2026 * html/HTMLCanvasElement.h:
2027 * html/HTMLImageElement.idl:
2028 * html/canvas/CanvasRenderingContext.cpp:
2029 (WebCore::CanvasRenderingContext::checkOrigin):
2030 * html/canvas/CanvasRenderingContext2D.cpp:
2031 (WebCore::CanvasRenderingContext2D::createPattern):
2032 * loader/ImageLoader.cpp:
2033 (WebCore::ImageLoader::updateFromElement):
2034 * loader/cache/CachedResource.cpp:
2035 (WebCore::CachedResource::passesAccessControlCheck):
2036 * loader/cache/CachedResource.h:
2038 2011-05-26 Mihai Parparita <mihaip@chromium.org>
2040 Reviewed by Adam Barth.
2042 Fix worldID and destinationDomain argument names
2043 https://bugs.webkit.org/show_bug.cgi?id=61571
2045 As part of working on r87423, I noticed a couple of inconsistencies in
2047 - We would use worldId in .h files but worldID in .cpp files.
2048 Standardize on the latter
2049 - SecurityOrigin::addOriginAccessWhitelistEntry would take a
2050 destinationDomains argument, even though the actual parameter was for
2051 a single domain (renamed to be singular).
2053 * bindings/v8/ScriptController.h:
2054 * bindings/v8/V8Proxy.h:
2055 * page/SecurityOrigin.cpp:
2056 (WebCore::SecurityOrigin::addOriginAccessWhitelistEntry):
2057 (WebCore::SecurityOrigin::removeOriginAccessWhitelistEntry):
2058 * page/SecurityOrigin.h:
2060 2011-05-26 Emil A Eklund <eae@chromium.org>
2062 Reviewed by Eric Seidel.
2064 Replace RenderLayer::x/y/width/height with location/size
2065 https://bugs.webkit.org/show_bug.cgi?id=61414
2067 Covered by existing tests.
2069 * dom/MouseRelatedEvent.cpp:
2070 (WebCore::MouseRelatedEvent::computeRelativePosition):
2071 * rendering/RenderBox.cpp:
2072 (WebCore::RenderBox::computeRectForRepaint):
2073 * rendering/RenderBox.h:
2074 (WebCore::RenderBox::maxLayoutOverflow):
2075 * rendering/RenderInline.cpp:
2076 (WebCore::RenderInline::clippedOverflowRectForRepaint):
2077 (WebCore::RenderInline::computeRectForRepaint):
2078 * rendering/RenderLayer.cpp:
2079 (WebCore::RenderLayer::updateLayerPosition):
2080 (WebCore::RenderLayer::convertToLayerCoords):
2081 (WebCore::RenderLayer::offsetFromResizeCorner):
2082 (WebCore::RenderLayer::calculateRects):
2083 * rendering/RenderLayer.h:
2084 (WebCore::RenderLayer::location):
2085 (WebCore::RenderLayer::setSize):
2086 * rendering/RenderObject.cpp:
2087 (WebCore::RenderObject::computeRectForRepaint):
2088 * rendering/RenderTreeAsText.cpp:
2090 (WebCore::writeLayers):
2091 (WebCore::externalRepresentation):
2092 * rendering/RenderView.cpp:
2093 (WebCore::RenderView::absoluteRects):
2094 (WebCore::RenderView::absoluteQuads):
2096 2011-05-26 Annie Sullivan <sullivan@chromium.org>
2098 Reviewed by Ryosuke Niwa.
2100 Delete table in contentEditable/designMode produces odd contents
2101 https://bugs.webkit.org/show_bug.cgi?id=57148
2103 Removes border-collapse, -webkit-border-horizontal-spacing, and
2104 -webkit-border-vertical-spacing from the list of properties which
2105 should be preserved during edit operations. Also renames this
2106 list to editingInheritableProperties to be more clear about what
2109 Test: editing/deleting/delete-last-char-in-table.html
2111 * editing/EditingStyle.cpp: Removes border vertical/horizontal
2112 spacing from editingStyleProperties.
2113 * editing/EditingStyle.h: Renames OnlyInheritableProperties to
2114 OnlyEditingInheritableProperties.
2115 * editing/markup.cpp: Renames InheritablePropertiesAndBackgroundColorInEffect.
2117 2011-05-26 Yuta Kitamura <yutak@chromium.org>
2119 Reviewed by Kent Tamura.
2121 WebSocket closing handshake
2122 https://bugs.webkit.org/show_bug.cgi?id=35721
2124 Implement WebSocket closing handshake based on Ian Hickson's
2125 WebSocket protocol draft 76.
2127 Tests: http/tests/websocket/tests/client-close.html
2128 http/tests/websocket/tests/server-close.html
2130 * platform/network/SocketStreamHandleBase.cpp:
2131 (WebCore::SocketStreamHandleBase::send):
2132 Do not send a message if we are in Closing state.
2133 (WebCore::SocketStreamHandleBase::close):
2134 Do not disconnect if we have pending data which have not been sent yet.
2135 In this case, the actual disconnection will happen in sendPendingData().
2136 (WebCore::SocketStreamHandleBase::disconnect):
2137 Renamed from close(). Disconnect the connection immediately.
2138 (WebCore::SocketStreamHandleBase::sendPendingData):
2139 * platform/network/SocketStreamHandleBase.h:
2140 * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
2141 Add didStartClosingHandshake(). Add a function argument (ClosingHandshakeCompletionStatus)
2143 (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
2144 (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
2145 (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback):
2146 (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
2147 * websockets/ThreadableWebSocketChannelClientWrapper.h:
2148 * websockets/WebSocket.cpp:
2149 (WebCore::WebSocket::send):
2150 (WebCore::WebSocket::close):
2151 Fail if close() is attempted before the connection is established.
2152 Otherwise, set the state to CLOSING and start the closing handshake.
2153 (WebCore::WebSocket::bufferedAmount):
2154 If the state is CLOSING, we need to consider buffered data in m_channel and sent after close().
2155 (WebCore::WebSocket::didConnect):
2156 (WebCore::WebSocket::didReceiveMessage):
2157 We need to invoke message event in CLOSING state as well as OPEN state.
2158 (WebCore::WebSocket::didReceiveMessageError):
2159 (WebCore::WebSocket::didStartClosingHandshake):
2160 (WebCore::WebSocket::didClose):
2161 * websockets/WebSocket.h:
2162 * websockets/WebSocketChannel.cpp:
2163 (WebCore::WebSocketChannel::WebSocketChannel):
2164 (WebCore::WebSocketChannel::close):
2165 Start the closing handshake.
2166 (WebCore::WebSocketChannel::disconnect):
2167 Disconnect the socket stream, instead of close.
2168 (WebCore::WebSocketChannel::didClose):
2169 (WebCore::WebSocketChannel::didReceiveData): Ditto.
2170 (WebCore::WebSocketChannel::didFail): Ditto.
2171 (WebCore::WebSocketChannel::processBuffer):
2173 Handle 0xFF 0x00 byte sequence, and discard received data once the closing handshake has started.
2174 (WebCore::WebSocketChannel::startClosingHandshake):
2175 Send 0xFF 0x00 byte sequence.
2176 (WebCore::WebSocketChannel::closingTimerFired):
2177 Disconnect the socket stream if the closing handshake has timed out.
2178 * websockets/WebSocketChannel.h:
2179 m_closing is true if "the WebSocket closing handshake has started" (as stated in the protocol
2181 * websockets/WebSocketChannelClient.h:
2182 (WebCore::WebSocketChannelClient::didStartClosingHandshake): Added.
2183 (WebCore::WebSocketChannelClient::didClose): Add closingHandshakeCompletion parameter.
2184 * websockets/WorkerThreadableWebSocketChannel.cpp:
2185 Add closingHandshakeCompletion parameter to didClose(), and add didStartClosingHandshake().
2186 (WebCore::WorkerThreadableWebSocketChannel::Peer::close):
2187 (WebCore::workerContextDidStartClosingHandshake):
2188 (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
2189 (WebCore::workerContextDidClose):
2190 (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
2191 * websockets/WorkerThreadableWebSocketChannel.h:
2193 2011-05-26 David Levin <levin@chromium.org>
2195 Reviewed by Dmitry Titov.
2197 WebKit's font notification has problems when the WebKit main thread != UI thread.
2198 https://bugs.webkit.org/show_bug.cgi?id=61391
2200 This doesn't happen in DumpRenderTree, so it needs a unit test which is taking me
2201 some time to write correctly. In the meantime, this issues happens to be causing
2202 some crashes in Chrome so here's the fix alone for the time being.
2204 * platform/graphics/mac/FontCacheMac.mm:
2205 (WebCore::invalidateFontCache): Ensure that FontCache::invalidate is only called on WebKit's main thread.
2206 (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Call common function for font cache invalidation.
2207 Note that the call to fontCache() is fine since the singleton is initialized well before calling this function. Theoretically,
2208 there could be a problem due to a lack of a memory barrier but that is highly unlikely and this is debug only code.
2209 (WebCore::fontCacheATSNotificationCallback): Ditto.
2211 2011-05-26 Stephanie Lewis <slewis@apple.com>
2213 Reviewed by Geoff Garen.
2215 https://bugs.webkit.org/show_bug.cgi?id=61345
2216 part of <rdar://problem/8675177>
2217 Roll back in now that the Crashes are fixed. ResourceResponseBase and ResourceResponse had two different definitions
2218 for m_isNull. ResourceResponse treats m_isNull as meaning there isn't any platform ResourceResponse.
2219 ResourceResponseBase treats m_isNull as meaning no fields have been initialized. Consolidate calls into ResourceResponseBase meaning.
2221 Don't initialize ResourceResponse.m_suggestedFilename until we want to use it. Initializing it requires reading in and parsing a plist.
2222 Add new initialization state CommonAndUncommonFields to ResourceResponse. This will be for all the header fields.
2223 Move suggestedFilename initialization to AllFields so it is never initialized unless we ask for it.
2224 Add "Content-Type" to common headers since it is looked for by every CSS sheet load.
2226 No new functionality so no new tests.
2228 * platform/network/ResourceResponseBase.cpp:
2229 (WebCore::ResourceResponseBase::adopt):
2230 (WebCore::ResourceResponseBase::suggestedFilename):
2231 (WebCore::ResourceResponseBase::setSuggestedFilename):
2232 (WebCore::ResourceResponseBase::httpStatusText):
2233 (WebCore::ResourceResponseBase::setHTTPStatusText):
2234 (WebCore::ResourceResponseBase::httpHeaderField):
2235 (WebCore::ResourceResponseBase::setHTTPHeaderField):
2236 (WebCore::ResourceResponseBase::httpHeaderFields):
2237 (WebCore::ResourceResponseBase::isAttachment):
2238 (WebCore::ResourceResponseBase::setLastModifiedDate):
2239 (WebCore::ResourceResponseBase::lastModifiedDate):
2240 (WebCore::ResourceResponseBase::wasCached):
2241 (WebCore::ResourceResponseBase::connectionReused):
2242 (WebCore::ResourceResponseBase::setConnectionReused):
2243 (WebCore::ResourceResponseBase::connectionID):
2244 (WebCore::ResourceResponseBase::setConnectionID):
2245 (WebCore::ResourceResponseBase::resourceLoadTiming):
2246 (WebCore::ResourceResponseBase::setResourceLoadTiming):
2247 (WebCore::ResourceResponseBase::resourceLoadInfo):
2248 (WebCore::ResourceResponseBase::setResourceLoadInfo):
2249 * platform/network/ResourceResponseBase.h:
2250 * platform/network/cf/ResourceResponse.h:
2251 (WebCore::ResourceResponse::ResourceResponse):
2252 * platform/network/cf/ResourceResponseCFNet.cpp:
2253 (WebCore::ResourceResponse::platformLazyInit):
2254 * platform/network/mac/ResourceResponseMac.mm:
2256 2011-05-26 James Kozianski <koz@chromium.org>
2258 Reviewed by Eric Seidel.
2260 Implement a whitelist for registerProtocolHandler
2261 https://bugs.webkit.org/show_bug.cgi?id=60322
2263 * page/Navigator.cpp:
2264 (WebCore::initProtocolHandlerWhitelist):
2265 (WebCore::isProtocolWhitelisted):
2266 (WebCore::verifyProtocolHandlerScheme):
2268 2011-05-26 Annie Sullivan <sullivan@chromium.org>
2270 Reviewed by Ryosuke Niwa.
2272 [debug feature] CSSStyleDeclaration should have a way to print cssText
2273 https://bugs.webkit.org/show_bug.cgi?id=61570
2275 Adds a method to print the cssText to stderr for debugging.
2277 * css/CSSStyleDeclaration.cpp:
2278 (WebCore::CSSStyleDeclaration::showStyle): New method to print cssText to stderr
2279 * css/CSSStyleDeclaration.h: New method declaration
2281 2011-05-26 Syed Idris Shah <syed.idris-shah@nokia.com>
2283 Reviewed by Andreas Kling.
2285 [Qt] fast/canvas/webgl/gl-uniform-arrays.html failing for Qt on Linux
2286 https://bugs.webkit.org/show_bug.cgi?id=60377
2288 LayoutTests/fast/canvas/webgl/gl-uniform-arrays.html
2290 For an array of active uniform, we should be careful while truncating the name of the uniform.
2291 Currently we are truncating the last three characters of an array with out checking for [0].
2292 As a result we are truncating the the actual name of the active uniforms i.e. color to co.
2294 * html/canvas/WebGLRenderingContext.cpp:
2295 (WebCore::WebGLRenderingContext::getUniform): Strip "[0]" from the name if it's an array and is part of the name.
2297 2011-05-26 Sheriff Bot <webkit.review.bot@gmail.com>
2299 Unreviewed, rolling out r87444.
2300 http://trac.webkit.org/changeset/87444
2301 https://bugs.webkit.org/show_bug.cgi?id=61582
2303 Layout test regressions in Chromium/WebKit: fast/css/first-
2304 letter-text-fragment-crash.html, fast/css/first-letter-
2305 visibility.html (Requested by aklein on #webkit).
2309 * page/ChromeClient.h:
2310 * page/FrameView.cpp:
2311 (WebCore::FrameView::setContentsSize):
2314 2011-05-26 David Levin <levin@chromium.org>
2316 Reviewed by Darin Fisher.
2318 Need a callback for when the preferred rendered size changed.
2319 https://bugs.webkit.org/show_bug.cgi?id=61309
2321 No new tests needed since no new functionality is exposed.
2324 (WebCore::Chrome::contentsPreferredSizeChanged): Plumbed through the call.
2325 * page/Chrome.h: Added the new method.
2326 * page/ChromeClient.h: Ditto.
2327 * page/FrameView.cpp:
2328 (WebCore::FrameView::setContentsSize): Added calculations for the preferred size
2329 and the call to contentsPreferredSizeChanged.
2331 2011-05-25 Levi Weintraub <leviw@chromium.org>
2333 Reviewed by Eric Seidel.
2335 Switch controlClipRect to use IntPoint
2336 https://bugs.webkit.org/show_bug.cgi?id=60806
2338 Switching controlClipRect to take an IntPoint representing the
2339 offset to be added instead of a pair of ints.
2341 No new tests as this is just refactoring.
2343 * WebCore.xcodeproj/project.pbxproj:
2344 * rendering/RenderBlock.cpp:
2345 (WebCore::RenderBlock::nodeAtPoint):
2346 * rendering/RenderBox.cpp:
2347 (WebCore::RenderBox::pushContentsClip):
2348 * rendering/RenderBox.h:
2349 (WebCore::RenderBox::controlClipRect):
2350 * rendering/RenderButton.cpp:
2351 (WebCore::RenderButton::controlClipRect):
2352 * rendering/RenderButton.h:
2353 * rendering/RenderListBox.cpp:
2354 (WebCore::RenderListBox::paintItemBackground):
2355 (WebCore::RenderListBox::controlClipRect):
2356 * rendering/RenderListBox.h:
2357 * rendering/RenderMenuList.cpp:
2358 (WebCore::RenderMenuList::controlClipRect):
2359 * rendering/RenderMenuList.h:
2360 * rendering/RenderTextControlSingleLine.cpp:
2361 (WebCore::RenderTextControlSingleLine::controlClipRect):
2362 * rendering/RenderTextControlSingleLine.h:
2364 2011-05-25 Levi Weintraub <leviw@chromium.org>
2366 Reviewed by Eric Seidel.
2368 Switch controlClipRect to use IntPoint
2369 https://bugs.webkit.org/show_bug.cgi?id=60806
2371 Switching controlClipRect to take an IntPoint representing the
2372 offset to be added instead of a pair of ints.
2374 No new tests as this is just refactoring.
2376 * WebCore.xcodeproj/project.pbxproj:
2377 * rendering/RenderBlock.cpp:
2378 (WebCore::RenderBlock::nodeAtPoint):
2379 * rendering/RenderBox.cpp:
2380 (WebCore::RenderBox::pushContentsClip):
2381 * rendering/RenderBox.h:
2382 (WebCore::RenderBox::controlClipRect):
2383 * rendering/RenderButton.cpp:
2384 (WebCore::RenderButton::controlClipRect):
2385 * rendering/RenderButton.h:
2386 * rendering/RenderListBox.cpp:
2387 (WebCore::RenderListBox::paintItemBackground):
2388 (WebCore::RenderListBox::controlClipRect):
2389 * rendering/RenderListBox.h:
2390 * rendering/RenderMenuList.cpp:
2391 (WebCore::RenderMenuList::controlClipRect):
2392 * rendering/RenderMenuList.h:
2393 * rendering/RenderTextControlSingleLine.cpp:
2394 (WebCore::RenderTextControlSingleLine::controlClipRect):
2395 * rendering/RenderTextControlSingleLine.h:
2397 2011-05-26 Jeff Miller <jeffm@apple.com>
2399 Reviewed by Steve Falkenburg.
2401 Fullscreen content is sometimes obscured by taskbar (which even covers up the "exit fullscreen" button)
2402 https://bugs.webkit.org/show_bug.cgi?id=61569
2403 <rdar://problem/9454315>
2405 Normally, when the background fullscreen window is animated in, the Windows taskbar will be hidden, but this doesn't always work for some reason.
2406 Workaround this issue by setting the real fullscreen window to be a topmost window.
2408 * platform/graphics/win/FullScreenController.cpp:
2409 (FullScreenController::Private::fullscreenClientWndProc): Exit fullscreen when m_fullScreenWindow is deactivated.
2410 (FullScreenController::enterFullScreenRepaintCompleted): Make m_fullScreenWindow a topmost window before animating it in to ensure the taskbar is hidden.
2412 2011-05-26 James Robinson <jamesr@chromium.org>
2414 Reviewed by Darin Fisher.
2416 [skia] Add area check to ImageBufferData::getImageData
2417 https://bugs.webkit.org/show_bug.cgi?id=61375
2419 No change in behavior, just a sanity check.
2421 * platform/graphics/skia/ImageBufferSkia.cpp:
2422 (WebCore::getImageData):
2424 2011-05-26 Levi Weintraub <leviw@chromium.org>
2426 Reviewed by Eric Seidel.
2428 Switch positionOverflowControls to IntSize
2429 https://bugs.webkit.org/show_bug.cgi?id=61493
2431 Switching positionOverflowControls to take a layerOffset IntSize
2432 as opposed to a pair of ints.
2434 No new tests since this is just refactoring.
2436 * rendering/RenderLayer.cpp:
2437 (WebCore::RenderLayer::updateLayerPositions):
2438 (WebCore::RenderLayer::positionOverflowControls):
2439 (WebCore::RenderLayer::paintOverflowControls):
2440 * rendering/RenderLayer.h:
2442 2011-05-26 Sheriff Bot <webkit.review.bot@gmail.com>
2444 Unreviewed, rolling out r87368.
2445 http://trac.webkit.org/changeset/87368
2446 https://bugs.webkit.org/show_bug.cgi?id=61564
2448 Wrong approach, will do the wrong thing if the element needs
2449 simplified normal flow layout but is not positioned (Requested
2450 by jamesr on #webkit).
2452 * rendering/RenderObject.h:
2453 (WebCore::RenderObject::needsPositionedMovementLayout):
2455 2011-05-02 Robert Hogan <robert@webkit.org>
2457 Reviewed by Adam Roben.
2459 [Qt] Allow popup windows from plugins when initiated by a user gesture
2461 https://bugs.webkit.org/show_bug.cgi?id=41292
2463 If the event is from a user gesture and the plugin doesn't support
2464 NPN_PushPopupsEnabledState() and NPN_PopPopupsEnabledState(), allow popups.
2466 * plugins/qt/PluginViewQt.cpp:
2467 (WebCore::PluginView::dispatchNPEvent):
2469 2011-05-26 Leandro Gracia Gil <leandrogracia@chromium.org>
2471 Reviewed by Dmitry Titov.
2473 [V8] Add missing compile guards for WebWorkers in WebCore.
2474 https://bugs.webkit.org/show_bug.cgi?id=61535
2476 No new tests - refactoring only.
2478 * bindings/v8/V8AbstractEventListener.cpp:
2479 (WebCore::V8AbstractEventListener::invokeEventHandler):
2480 * bindings/v8/V8DOMWrapper.cpp:
2481 (WebCore::V8DOMWrapper::instantiateV8Object):
2483 2011-05-26 Mihai Parparita <mihaip@chromium.org>
2485 Reviewed by Adam Barth.
2487 Support cross-origin XMLHttpRequest in isolated worlds
2488 https://bugs.webkit.org/show_bug.cgi?id=59843
2490 Allows isolated worlds to be associated with a different SecurityOrigin
2491 (exposed as a setIsolatedWorldSecurityOrigin function in
2494 The XMLHttpRequest constructor can then check that it's being
2495 instantiated in an isolated world and use its security origin.
2496 XMLHttpRequest, ThreadableLoader and DocumentThreadableLoader had to be
2497 changed to use the copied SecurityOrigin instead of always grabbing the
2500 Test: http/tests/security/isolatedWorld/cross-origin-xhr.html
2502 * bindings/v8/ScriptController.cpp:
2503 (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
2504 * bindings/v8/ScriptController.h:
2505 * bindings/v8/V8IsolatedContext.cpp:
2506 (WebCore::V8IsolatedContext::setSecurityOrigin):
2507 * bindings/v8/V8IsolatedContext.h:
2508 (WebCore::V8IsolatedContext::securityOrigin):
2509 * bindings/v8/V8Proxy.cpp:
2510 (WebCore::V8Proxy::evaluateInIsolatedWorld):
2511 (WebCore::V8Proxy::setIsolatedWorldSecurityOrigin):
2512 (WebCore::V8Proxy::resetIsolatedWorlds):
2513 * bindings/v8/V8Proxy.h:
2514 * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
2515 (WebCore::V8XMLHttpRequest::constructorCallback):
2516 * loader/DocumentThreadableLoader.cpp:
2517 (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
2518 (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
2519 (WebCore::DocumentThreadableLoader::didReceiveResponse):
2520 (WebCore::DocumentThreadableLoader::preflightSuccess):
2521 (WebCore::DocumentThreadableLoader::isAllowedRedirect):
2522 (WebCore::DocumentThreadableLoader::securityOrigin):
2523 * loader/DocumentThreadableLoader.h:
2524 * loader/ThreadableLoader.h:
2525 * xml/XMLHttpRequest.cpp:
2526 (WebCore::XMLHttpRequest::create):
2527 (WebCore::XMLHttpRequest::XMLHttpRequest):
2528 (WebCore::XMLHttpRequest::securityOrigin):
2529 (WebCore::XMLHttpRequest::responseXML):
2530 (WebCore::XMLHttpRequest::createRequest):
2531 (WebCore::XMLHttpRequest::setRequestHeader):
2532 (WebCore::XMLHttpRequest::getAllResponseHeaders):
2533 (WebCore::XMLHttpRequest::getResponseHeader):
2534 * xml/XMLHttpRequest.h:
2536 2011-05-26 Michael Nordman <michaeln@google.com>
2538 Reviewed by Darin Fisher.
2540 [Chromium] Use SecurityOrigin produced databaseIdentifier strings, instead of
2541 SecurityOrigin RefPtrs, as the top level key into the DatabaseTracker's
2542 collection of open databases. Otherwise we can fail to lookup databases when
2543 trying to forceably close them via WebDatabase::closeDatabaseImmediately.
2544 https://bugs.webkit.org/show_bug.cgi?id=61417
2546 New new functionality, no tests.
2548 * storage/DatabaseTracker.h:
2549 * storage/chromium/DatabaseTrackerChromium.cpp:
2550 (WebCore::DatabaseTracker::addOpenDatabase):
2551 (WebCore::DatabaseTracker::removeOpenDatabase):
2552 (WebCore::DatabaseTracker::getOpenDatabases):
2553 (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
2555 2011-05-25 Jer Noble <jer.noble@apple.com>
2557 Reviewed by Maciej Stachowiak.
2559 Safari Web Content crashes while entering/exiting the full screen mode of the video content
2560 https://bugs.webkit.org/show_bug.cgi?id=61498
2562 No new tests, as DRT does not currently animate the full screen transition.
2564 To guard against m_fullScreenRenderer being called after it has been deleted, add
2565 code in RenderFullScreen which notifies the document when its full-screen renderer
2568 Also, add some sanity checks when accessing the full-screen renderer's layer backing.
2571 (WebCore::Document::webkitWillEnterFullScreenForElement): Guard against a missing
2572 full-screen renderer layer.
2573 (WebCore::Document::webkitWillExitFullScreenForElement): Ditto.
2574 (WebCore::Document::setFullScreenRenderer): Added ASSERT.
2575 (WebCore::Document::fullScreenRendererDestroyed): Added.
2576 (WebCore::Document::setAnimatingFullScreen): Guard against the full-screen
2577 element having been removed from the document.
2579 * rendering/RenderFullScreen.cpp:
2580 (RenderFullScreen::destroy): Added. Tell the Document that it's full-screen
2581 renderer is about to be destroyed.
2582 * rendering/RenderFullScreen.h:
2584 2011-05-26 Andreas Kling <kling@webkit.org>
2586 Reviewed by Geoffrey Garen.
2588 Overload resolution in generated JSC bindings could be more efficient.
2589 https://bugs.webkit.org/show_bug.cgi?id=61544
2591 Only fetch the arguments once, and not until they are needed (less work
2592 in the case of an early return.)
2594 * bindings/scripts/CodeGeneratorJS.pm:
2595 * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
2596 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2598 2011-05-26 Adrienne Walker <enne@google.com>
2600 Reviewed by James Robinson.
2602 [chromium] Be robust to empty viewports in the compositor
2603 https://bugs.webkit.org/show_bug.cgi?id=61545
2605 It's possible for a frame to be requested to be drawn before it is
2606 non-empty. The compositor should be robust to that possibility. The
2607 changes in LayerTilerChromium are the only required changes to handle
2608 this, but having an early out in LayerRendererChromium seemed like a
2611 * platform/graphics/chromium/LayerRendererChromium.cpp:
2612 (WebCore::LayerRendererChromium::updateAndDrawLayers):
2613 (WebCore::LayerRendererChromium::drawLayers):
2614 * platform/graphics/chromium/LayerTilerChromium.cpp:
2615 (WebCore::LayerTilerChromium::prepareToUpdate):
2616 (WebCore::LayerTilerChromium::updateRect):
2617 (WebCore::LayerTilerChromium::draw):
2619 2011-05-26 Emil A Eklund <eae@chromium.org>
2621 Reviewed by Eric Seidel.
2623 Change RenderObject to use FloatPoint::scale and FloatQuad::scale
2624 https://bugs.webkit.org/show_bug.cgi?id=61497
2626 Covered by existing test.
2628 * platform/graphics/FloatQuad.h:
2629 (WebCore::FloatQuad::scale):
2630 * rendering/RenderObject.h:
2631 (WebCore::adjustFloatQuadForAbsoluteZoom):
2632 (WebCore::adjustFloatRectForAbsoluteZoom):
2633 (WebCore::adjustFloatQuadForPageScale):
2634 (WebCore::adjustFloatRectForPageScale):
2636 2011-05-26 Alexis Menard <alexis.menard@openbossa.org>
2638 Unreviewed build fix for Qt and QuickTime backend.
2640 r87328 added a new system interface, we need to add it too.
2642 * platform/qt/WebCoreSystemInterface.h:
2643 * platform/qt/WebCoreSystemInterface.mm:
2645 2011-05-26 Andrey Kosyakov <caseq@chromium.org>
2647 Unreviewed follow-up to r87395, added checks to avoid accessing undefined member for certain timeline events.
2649 * inspector/front-end/TimelinePanel.js:
2650 (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
2651 (WebInspector.TimelinePanel.FormattedRecord):
2653 2011-05-25 Ryosuke Niwa <rniwa@webkit.org>
2655 Reviewed by Enrica Casucci.
2657 WebKit duplicates styles from css rules on copy and paste
2658 https://bugs.webkit.org/show_bug.cgi?id=61466
2660 Fixed the bug by removing duplicate properties from inline style declarations in ReplaceSelectionCommand.
2661 Also moved the code to obtain style from rules from markup.cpp to EditingStyle.cpp to share code.
2663 Test: editing/pasteboard/style-from-rules.html
2665 * editing/EditingStyle.cpp:
2666 (WebCore::EditingStyle::EditingStyle): Added a null check.
2667 (WebCore::EditingStyle::extractFontSizeDelta): Ditto.
2668 (WebCore::styleFromMatchedRulesForElement): Moved from markup.cpp.
2669 (WebCore::EditingStyle::mergeStyleFromRules): Extracted from StyledMarkupAccumulator::appendElement.
2670 (WebCore::EditingStyle::mergeStyleFromRulesForSerialization): Ditto.
2671 (WebCore::EditingStyle::removeStyleFromRules): Added.
2672 * editing/EditingStyle.h:
2673 * editing/ReplaceSelectionCommand.cpp:
2674 (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): Renamed from
2675 negateStyleRulesThatAffectAppearance; Calls removeStyleFromRules.
2676 * editing/markup.cpp:
2677 (WebCore::StyledMarkupAccumulator::appendElement): Calls mergeStyleFromRulesForSerialization.
2678 (WebCore::styleFromMatchedRulesAndInlineDecl): Calls mergeStyleFromRules; changed the return type
2679 from CSSMutableStyleDeclaration to EditingStyle.
2680 (WebCore::isElementPresentational): Calls styleFromMatchedRulesAndInlineDecl.
2681 (WebCore::shouldIncludeWrapperForFullySelectedRoot): Ditto.
2682 (WebCore::highestAncestorToWrapMarkup): Calls shouldIncludeWrapperForFullySelectedRoot.
2683 (WebCore::createMarkup): Calls styleFromMatchedRulesAndInlineDecl.
2685 2011-05-26 Michael Schneider <michschn@google.com>
2687 Reviewed by Pavel Feldman.
2689 WebInspector: Added API to access the timeline data in a inspector extension.
2690 https://bugs.webkit.org/show_bug.cgi?id=61098
2693 * WebCore.vcproj/WebCore.vcproj:
2694 * inspector/front-end/ExtensionAPI.js:
2695 (WebInspector.injectedExtensionAPI.InspectorExtensionAPI):
2696 (WebInspector.injectedExtensionAPI):
2697 * inspector/front-end/ExtensionServer.js:
2698 (WebInspector.ExtensionServer):
2699 (WebInspector.ExtensionServer.prototype._addRecordToTimeline):
2700 (WebInspector.ExtensionServer.prototype._onSubscribe):
2701 (WebInspector.ExtensionServer.prototype._onUnsubscribe):
2702 (WebInspector.ExtensionServer.prototype._registerHandler):
2703 (WebInspector.ExtensionServer.prototype._registerSubscriptionHandler):
2704 * inspector/front-end/TimelineManager.js: Added.
2705 (WebInspector.TimelineManager):
2706 (WebInspector.TimelineManager.prototype.start):
2707 (WebInspector.TimelineManager.prototype.stop):
2708 (WebInspector.TimelineDispatcher):
2709 (WebInspector.TimelineDispatcher.prototype.started):
2710 (WebInspector.TimelineDispatcher.prototype.stopped):
2711 (WebInspector.TimelineDispatcher.prototype.eventRecorded):
2712 * inspector/front-end/TimelinePanel.js:
2713 (WebInspector.TimelinePanel):
2714 (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
2715 (WebInspector.TimelinePanel.prototype._onTimelineEventRecorded):
2716 * inspector/front-end/WebKit.qrc:
2717 * inspector/front-end/inspector.html:
2719 2011-05-26 Andrey Kosyakov <caseq@chromium.org>
2721 Reviewed by Yury Semikhatsky.
2723 Web Inspector: TimelinePanel should not modify input timeline data when processing timeline event
2724 https://bugs.webkit.org/show_bug.cgi?id=61529
2726 Do not modify input timeline data when processing timeline event.
2728 * inspector/front-end/TimelinePanel.js:
2729 (WebInspector.TimelinePanel.prototype._addRecordToTimeline):
2730 (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
2731 (WebInspector.TimelinePanel.FormattedRecord):
2732 (WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
2733 (WebInspector.TimelinePanel.FormattedRecord.prototype._refreshDetails):
2734 (WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
2736 2011-05-26 Rob Buis <rbuis@rim.com>
2738 Reviewed by Dirk Schulze.
2740 Dynamically created <animate> elements do not animate upon document insertion as they should
2741 https://bugs.webkit.org/show_bug.cgi?id=20028
2743 Tests: svg/animations/animate-insert-begin.html
2744 svg/animations/animate-insert-no-begin.html
2746 Move animation initializing and rescheduling to insertedIntoDocument. This way animate elements
2747 dynamicaly inserted into the document using js start as well.
2749 * svg/animation/SVGSMILElement.cpp:
2750 (WebCore::SVGSMILElement::insertedIntoDocument):
2751 * svg/animation/SVGSMILElement.h:
2753 2011-05-26 Andreas Kling <kling@webkit.org>
2755 Reviewed by Benjamin Poulain.
2757 JSC DOM bindings: ExecState::argumentCount() is size_t, not int.
2758 https://bugs.webkit.org/show_bug.cgi?id=61530
2760 * bindings/scripts/CodeGeneratorJS.pm:
2761 * bindings/scripts/test/JS/JSTestObj.cpp:
2762 (WebCore::jsTestObjPrototypeFunctionOptionsObject):
2763 (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
2764 (WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
2765 (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
2766 (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
2767 (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
2768 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
2769 (WebCore::jsTestObjPrototypeFunctionClassMethodWithOptional):
2771 2011-05-26 Simon Fraser <simon.fraser@apple.com>
2773 Reviewed by Adam Roben.
2775 Some repeating linear gradients look wrong
2776 https://bugs.webkit.org/show_bug.cgi?id=61371
2778 Test: fast/gradients/css3-repeating-linear-gradients2.html
2780 Fix incorrect stop duplication code when filling forwards a repeating
2781 gradient. The "if (srcStopOrdinal < originalNumStops - 1)" test was wrong
2782 because srcStopOrdinal had been adjusted for stops added by start-filling,
2783 but originalNumStops had not. Fix by considering srcStopOrdinal as an index
2784 into the original stops, so comparing it with originalNumStops remains valid.
2786 * css/CSSGradientValue.cpp:
2787 (WebCore::CSSGradientValue::addStops):
2789 2011-05-26 Vsevolod Vlasov <vsevik@chromium.org>
2791 Reviewed by Yury Semikhatsky.
2793 Web Inspector: In network panel, show transfer size in a first line of resource row.
2794 https://bugs.webkit.org/show_bug.cgi?id=61354
2796 * English.lproj/localizedStrings.js:
2797 * inspector/front-end/NetworkPanel.js:
2798 (WebInspector.NetworkPanel.prototype._createTable):
2799 (WebInspector.NetworkDataGridNode.prototype._refreshSizeCell):
2801 2011-05-25 Simon Fraser <simon.fraser@apple.com>
2803 Reviewed by Dan Bernstein.
2805 Always antialias borders, outlines and rules when scaling
2806 https://bugs.webkit.org/show_bug.cgi?id=61502
2808 r84273 changed the behavior of drawLineForBoxSide() to never antialias by default.
2809 This actually disabled antialiasing in some circumstances where it used to be enabled,
2810 for example collapsed table border drawing.
2812 Fix by allowing antialiasing for collapsed table borders, column rules and span
2813 outlines when the context is scaled.
2815 Test: fast/borders/border-antialiasing.html
2817 * rendering/RenderBlock.cpp:
2818 (WebCore::RenderBlock::paintColumnRules):
2819 * rendering/RenderInline.cpp:
2820 (WebCore::RenderInline::paintOutline):
2821 (WebCore::RenderInline::paintOutlineForLine):
2822 * rendering/RenderTableCell.cpp:
2823 (WebCore::RenderTableCell::paintCollapsedBorder):
2825 2011-05-26 Vsevolod Vlasov <vsevik@chromium.org>
2827 Reviewed by Yury Semikhatsky.
2829 Web Inspector: Use different SourceFrame instances for ResourcesPanel and NetworkPanel
2830 https://bugs.webkit.org/show_bug.cgi?id=59193
2832 * inspector/front-end/NetworkItemView.js:
2833 (WebInspector.NetworkItemView):
2834 (WebInspector.NetworkItemView._contentViewForResource):
2835 * inspector/front-end/NetworkPanel.js:
2836 (WebInspector.NetworkPanel.prototype._refreshResource):
2837 * inspector/front-end/Resource.js:
2838 (WebInspector.Resource.prototype.get messages):
2839 (WebInspector.Resource.prototype.addMessage):
2840 (WebInspector.Resource.prototype.set errors):
2841 (WebInspector.Resource.prototype.set warnings):
2842 (WebInspector.Resource.prototype.clearErrorsAndWarnings):
2843 * inspector/front-end/ResourceTreeModel.js:
2844 (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
2845 * inspector/front-end/ResourceView.js:
2846 (WebInspector.ResourceView.hasTextContent):
2847 (WebInspector.ResourceView.nonSourceViewForResource):
2848 (WebInspector.ResourceSourceFrame):
2849 (WebInspector.ResourceSourceFrame.mimeTypeForResource):
2850 (WebInspector.ResourceSourceFrame.prototype.requestContent):
2851 (WebInspector.ResourceSourceFrame.prototype.suggestedFileName):
2852 (WebInspector.EditableResourceSourceFrame):
2853 (WebInspector.EditableResourceSourceFrame.prototype.doubleClick):
2854 (WebInspector.EditableResourceSourceFrame.prototype.editContent):
2855 (WebInspector.EditableResourceSourceFrame.prototype.cancelEditing):
2856 (WebInspector.EditableResourceSourceFrame.prototype.afterTextChanged):
2857 (WebInspector.EditableResourceSourceFrame.prototype._clearIncrementalUpdateTimer):
2858 (WebInspector.ResourceRevisionSourceFrame):
2859 (WebInspector.ResourceRevisionSourceFrame.prototype.requestContent):
2860 * inspector/front-end/ResourcesPanel.js:
2861 (WebInspector.ResourcesPanel.prototype.showResource):
2862 (WebInspector.ResourcesPanel.prototype._showResourceView):
2863 (WebInspector.ResourcesPanel.prototype._resourceViewForResource):
2864 (WebInspector.ResourcesPanel.prototype._showRevisionView):
2865 (WebInspector.ResourcesPanel.prototype._sourceViewForRevision):
2866 (WebInspector.ResourcesPanel.prototype.searchCanceled):
2867 (WebInspector.ResourcesPanel.prototype._findTreeElementForRevision):
2868 (WebInspector.ResourcesPanel.prototype._findTreeElementForRevision.getParent):
2869 (WebInspector.FrameResourceTreeElement):
2870 (WebInspector.FrameResourceTreeElement.prototype.onattach):
2871 (WebInspector.FrameResourceTreeElement.prototype._updateErrorsAndWarningsBubbles):
2872 (WebInspector.FrameResourceTreeElement.prototype._errorsWarningsCleared):
2873 (WebInspector.FrameResourceTreeElement.prototype._errorsWarningsMessageAdded):
2874 (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
2875 (WebInspector.FrameResourceTreeElement.prototype.sourceView):
2876 (WebInspector.FrameResourceTreeElement.prototype._createSourceView):
2877 (WebInspector.FrameResourceTreeElement.prototype._recreateSourceView):
2878 (WebInspector.ResourceRevisionTreeElement):
2879 (WebInspector.ResourceRevisionTreeElement.prototype._handleContextMenuEvent):
2880 (WebInspector.ResourceRevisionTreeElement.prototype.sourceView):
2882 2011-05-26 Andreas Kling <kling@webkit.org>
2884 Reviewed by Darin Adler.
2886 JSC DOM bindings: Use isUndefinedOrNull() instead of (isNull() || isUndefined()).
2887 https://bugs.webkit.org/show_bug.cgi?id=61472
2889 * bindings/scripts/CodeGeneratorJS.pm:
2890 * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
2891 (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
2892 (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2894 2011-05-26 Keishi Hattori <keishi@webkit.org>
2896 Reviewed by Kent Tamura.
2898 Add <input type=color> appearance.
2899 https://bugs.webkit.org/show_bug.cgi?id=61275
2901 Test: fast/forms/color/input-appearance-color.html
2904 (input[type="color"]): Adds square-button appearance.
2905 (input[type="color"]::-webkit-color-swatch-wrapper):
2906 (input[type="color"]::-webkit-color-swatch):
2907 (input[type="color"][list]): Adds menulist appearance.
2908 (input[type="color"][list]::-webkit-color-swatch-wrapper):
2909 (input[type="color"][list]::-webkit-color-swatch):
2910 * html/ColorInputType.cpp:
2911 (WebCore::ColorInputType::createShadowSubtree): Creates -webkit-color-swatch inside -webkit-color-swatch-wrapper.
2912 (WebCore::ColorInputType::updateColorSwatch): Updates background color of shadowColorSwatch.
2913 (WebCore::ColorInputType::valueChanged): Calls updateColorSwatch.
2914 (WebCore::ColorInputType::shadowColorSwatch): Gets shadowColorSwatch element.
2915 * html/ColorInputType.h:
2916 (WebCore::ColorInputType::ColorInputType): Changed to inherit InputType.
2918 2011-05-26 Kent Tamura <tkent@chromium.org>
2920 Reviewed by Dimitri Glazkov.
2922 Fix a bug that <input type="number"> dispatches two blurs when tabbing
2923 from an invalid number
2924 https://bugs.webkit.org/show_bug.cgi?id=59071
2926 NumberInputType::handleBlurEvent() dispatched an extra focus event
2927 and an extra blur event because
2928 SelectionController::textWillBeReplaced() called by
2929 RenderTextControlSingleLine::updateFromElement() focuses a node
2932 In order to avoid this problem,
2933 - Introduce Node::willBlur()
2934 It is called before any state changes by a blur event.
2935 - Call RenderTextControlSingleLine::updateFromElement() in willBlur()
2936 It avoids extra focus/blur events because Document::m_focusedNode is
2937 still the number input during willBlur().
2939 Test: fast/forms/input-number-blur-twice.html
2942 (WebCore::Document::setFocusedNode): Calls Node::beforeBlueEvent().
2944 (WebCore::Node::willBlur):
2945 Default empty implementation of willBlur().
2946 * dom/Node.h: Declare willBlur().
2947 * html/HTMLInputElement.cpp:
2948 (WebCore::HTMLInputElement::willBlur):
2949 Added. It just calls InputType::willBlur().
2950 (WebCore::HTMLInputElement::handleBlurEvent):
2951 Removed InputType::handleBlurEvent() call.
2952 * html/HTMLInputElement.h: Declare willBlur().
2953 * html/InputType.cpp:
2954 (WebCore::InputType::willBlur): Default empty implementation.
2955 (WebCore::InputType::handleBlurEvent): Removed.
2956 * html/InputType.h: Declare willBlur(), remove handleBlurEvent().
2957 * html/NumberInputType.cpp:
2958 (WebCore::NumberInputType::willBlur):
2959 Move the code in handleBlurEvent() here.
2960 * html/NumberInputType.h: Declare willBlur().
2962 2011-05-25 Hans Wennborg <hans@chromium.org>
2964 Reviewed by Steve Block.
2966 IndexedDB: Support LevelDB transactions.
2967 https://bugs.webkit.org/show_bug.cgi?id=61270
2969 Introduce LevelDBTransaction, which implements in-memory transaction
2970 support on top of LevelDB, and hook this up for IndexedDB to use.
2972 This is all covered by existing tests.
2975 * GNUmakefile.list.am:
2978 * WebCore.xcodeproj/project.pbxproj:
2979 * platform/leveldb/LevelDBDatabase.cpp:
2980 (WebCore::LevelDBDatabase::open):
2981 (WebCore::LevelDBDatabase::put):
2982 (WebCore::LevelDBDatabase::remove):
2983 (WebCore::LevelDBDatabase::write):
2984 (WebCore::IteratorImpl::IteratorImpl):
2985 (WebCore::IteratorImpl::isValid):
2986 (WebCore::IteratorImpl::seekToLast):
2987 (WebCore::IteratorImpl::seek):
2988 (WebCore::IteratorImpl::next):
2989 (WebCore::IteratorImpl::prev):
2990 (WebCore::IteratorImpl::key):
2991 (WebCore::IteratorImpl::value):
2992 (WebCore::LevelDBDatabase::createIterator):
2993 (WebCore::LevelDBDatabase::comparator):
2994 * platform/leveldb/LevelDBDatabase.h:
2995 * platform/leveldb/LevelDBIterator.h:
2996 (WebCore::LevelDBIterator::~LevelDBIterator):
2997 * platform/leveldb/LevelDBTransaction.cpp: Added.
2998 (WebCore::LevelDBTransaction::create):
2999 (WebCore::LevelDBTransaction::LevelDBTransaction):
3000 (WebCore::LevelDBTransaction::clearTree):
3001 (WebCore::LevelDBTransaction::~LevelDBTransaction):
3002 (WebCore::makeVector):
3003 (WebCore::LevelDBTransaction::set):
3004 (WebCore::LevelDBTransaction::put):
3005 (WebCore::LevelDBTransaction::remove):
3006 (WebCore::LevelDBTransaction::get):
3007 (WebCore::LevelDBTransaction::commit):
3008 (WebCore::LevelDBTransaction::rollback):
3009 (WebCore::LevelDBTransaction::createIterator):
3010 (WebCore::LevelDBTransaction::TreeIterator::create):
3011 (WebCore::LevelDBTransaction::TreeIterator::isValid):
3012 (WebCore::LevelDBTransaction::TreeIterator::seekToLast):
3013 (WebCore::LevelDBTransaction::TreeIterator::seek):
3014 (WebCore::LevelDBTransaction::TreeIterator::next):
3015 (WebCore::LevelDBTransaction::TreeIterator::prev):
3016 (WebCore::LevelDBTransaction::TreeIterator::key):
3017 (WebCore::LevelDBTransaction::TreeIterator::value):
3018 (WebCore::LevelDBTransaction::TreeIterator::isDeleted):
3019 (WebCore::LevelDBTransaction::TreeIterator::reset):
3020 (WebCore::LevelDBTransaction::TreeIterator::~TreeIterator):
3021 (WebCore::LevelDBTransaction::TreeIterator::TreeIterator):
3022 (WebCore::LevelDBTransaction::TransactionIterator::create):
3023 (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
3024 (WebCore::LevelDBTransaction::TransactionIterator::isValid):
3025 (WebCore::LevelDBTransaction::TransactionIterator::seekToLast):
3026 (WebCore::LevelDBTransaction::TransactionIterator::seek):
3027 (WebCore::LevelDBTransaction::TransactionIterator::next):
3028 (WebCore::LevelDBTransaction::TransactionIterator::prev):
3029 (WebCore::LevelDBTransaction::TransactionIterator::key):
3030 (WebCore::LevelDBTransaction::TransactionIterator::value):
3031 (WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):
3032 (WebCore::LevelDBTransaction::TransactionIterator::setCurrentIteratorToSmallestKey):
3033 (WebCore::LevelDBTransaction::TransactionIterator::setCurrentIteratorToLargestKey):
3034 (WebCore::LevelDBTransaction::registerIterator):
3035 (WebCore::LevelDBTransaction::unregisterIterator):
3036 (WebCore::LevelDBTransaction::resetIterators):
3037 * platform/leveldb/LevelDBTransaction.h: Added.
3038 (WebCore::LevelDBTransaction::AVLTreeAbstractor::get_less):
3039 (WebCore::LevelDBTransaction::AVLTreeAbstractor::set_less):
3040 (WebCore::LevelDBTransaction::AVLTreeAbstractor::get_greater):
3041 (WebCore::LevelDBTransaction::AVLTreeAbstractor::set_greater):
3042 (WebCore::LevelDBTransaction::AVLTreeAbstractor::get_balance_factor):
3043 (WebCore::LevelDBTransaction::AVLTreeAbstractor::set_balance_factor):
3044 (WebCore::LevelDBTransaction::AVLTreeAbstractor::compare_key_key):
3045 (WebCore::LevelDBTransaction::AVLTreeAbstractor::compare_key_node):
3046 (WebCore::LevelDBTransaction::AVLTreeAbstractor::compare_node_node):
3047 (WebCore::LevelDBTransaction::AVLTreeAbstractor::null):
3048 (WebCore::LevelDBTransaction::TransactionIterator::~TransactionIterator):
3049 * platform/leveldb/LevelDBWriteBatch.cpp:
3050 (WebCore::LevelDBWriteBatch::create):
3051 (WebCore::LevelDBWriteBatch::LevelDBWriteBatch):
3052 (WebCore::LevelDBWriteBatch::~LevelDBWriteBatch):
3053 (WebCore::makeSlice):
3054 (WebCore::LevelDBWriteBatch::put):
3055 (WebCore::LevelDBWriteBatch::remove):
3056 (WebCore::LevelDBWriteBatch::clear):
3057 * storage/IDBLevelDBBackingStore.cpp:
3060 (WebCore::getString):
3061 (WebCore::putString):
3062 (WebCore::getNewObjectStoreId):
3063 (WebCore::IDBLevelDBBackingStore::createObjectStore):
3064 (WebCore::deleteRange):
3065 (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
3066 (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
3067 (WebCore::getNewVersionNumber):
3068 (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
3069 (WebCore::IDBLevelDBBackingStore::clearObjectStore):
3070 (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
3071 (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
3072 (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
3073 (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
3074 (WebCore::getNewIndexId):
3075 (WebCore::IDBLevelDBBackingStore::createIndex):
3076 (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
3077 (WebCore::findGreatestKeyLessThan):
3078 (WebCore::versionExists):
3079 (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
3080 (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
3081 (WebCore::findLastIndexKeyEqualTo):
3082 (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
3083 (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
3084 (WebCore::IDBLevelDBBackingStore::openIndexCursor):
3085 (WebCore::IDBLevelDBBackingStore::createTransaction):
3086 (WebCore::IDBLevelDBBackingStore::Transaction::create):
3087 (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
3088 (WebCore::IDBLevelDBBackingStore::Transaction::begin):
3089 (WebCore::IDBLevelDBBackingStore::Transaction::commit):
3090 (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
3091 * storage/IDBLevelDBBackingStore.h:
3092 * storage/IDBTransactionBackendImpl.cpp:
3093 (WebCore::IDBTransactionBackendImpl::abort):
3095 2011-05-26 Shane Stephens <shanestephens@google.com>
3097 Reviewed by James Robinson.
3099 REGRESSION (r81992): layout triggered by position update fails to apply when transform is updated at same time
3100 https://bugs.webkit.org/show_bug.cgi?id=60689
3102 Test: transforms/2d/set-transform-and-top.html
3104 * rendering/RenderBlock.cpp:
3105 (WebCore::RenderBlock::simplifiedLayout):
3107 2011-05-26 Igor Oliveira <igor.oliveira@openbossa.org>
3109 Reviewed by Andreas Kling.
3111 drag-not-loaded-image.html test crashes when WebKit is built with debug option
3112 https://bugs.webkit.org/show_bug.cgi?id=61480
3114 Checks if image has content before starting to drag.
3116 * page/DragController.cpp:
3117 (WebCore::DragController::startDrag):
3119 2011-05-26 Alok Priyadarshi <alokp@chromium.org>
3121 Reviewed by James Robinson.
3123 [chromium] Cannot create stencil render-buffer for accelerated drawing on desktop GL
3124 https://bugs.webkit.org/show_bug.cgi?id=61444
3126 Used DEPTH24_STENCIL8 format for stencil buffer instead of STENCIL_INDEX8.
3127 Packed depth-stencil buffer is the most common format supported by graphics cards.
3128 It is not very robust to rely on just one format being supported,
3129 so long term the task of creating FBO should be delegated to SKIA,
3130 which has necessary code to iterate through all possible formats.
3132 * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
3133 (WebCore::LayerTextureUpdaterSkPicture::deleteFrameBuffer):
3134 (WebCore::LayerTextureUpdaterSkPicture::createFrameBuffer):
3136 2011-05-25 Jer Noble <jer.noble@apple.com>
3138 Reviewed by Dan Bernstein.
3140 30 second rewind button dysfunctional viewing trailers fullscreen.
3141 https://bugs.webkit.org/show_bug.cgi?id=61505
3143 Add support for painting MediaReturnToRealtimeButton, as well as hide and show
3144 the correct default video control buttons when entering full-screen mode.
3146 * css/fullscreenQuickTime.css:
3147 (video:-webkit-full-screen::-webkit-media-controls-return-to-realtime-button):
3148 * html/shadow/MediaControlRootElement.cpp:
3149 (WebCore::MediaControlRootElement::enteredFullscreen): Show the "Back 30s" and
3150 "Return to Realtime" buttons for Live Streams in full-screen mode.
3151 (WebCore::MediaControlRootElement::exitedFullscreen): Reset the styles of
3152 all the buttons affected by enteredFullscreen().
3153 * rendering/RenderMediaControls.cpp:
3154 (WebCore::RenderMediaControls::paintMediaControlsPart): Add support for
3155 MediaReturnToRealtimeButton.
3157 2011-05-25 Luke Macpherson <macpherson@chromium.org>
3159 Reviewed by Dimitri Glazkov.
3161 Implement various CSS font properties in CSSStyleApplyProperty.
3162 https://bugs.webkit.org/show_bug.cgi?id=60603
3164 No new tests - refactoring only.
3166 * css/CSSStyleApplyProperty.cpp:
3167 (WebCore::ApplyPropertyFont):
3168 Added templated class to handle font properties
3169 (WebCore::ApplyPropertyFontWeight):
3170 Added class to handle font weight calculation
3171 (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
3172 Instantiate ApplyPropertyFont/ApplyPropertyFontWeight for appropriate properties.
3173 * css/CSSStyleSelector.cpp:
3174 (WebCore::CSSStyleSelector::applyProperty):
3175 Remove properties that are now implemented in CSSStyleApplyProperty
3176 * css/CSSStyleSelector.h:
3177 (WebCore::CSSStyleSelector::fontDescription):
3178 Added getter for m_style->fontDescription()
3179 (WebCore::CSSStyleSelector::parentFontDescription):
3180 Added getter for m_parentStyle->fontDescription()
3181 (WebCore::CSSStyleSelector::setFontDescription):
3182 Added setter for m_style->setFontDescription() that automatically sets m_fontDirty
3184 2011-05-25 James Simonsen <simonjam@chromium.org>
3186 Reviewed by Adam Barth.
3188 Add site-specific hack for zipcar.com with old versions of requirejs.
3189 https://bugs.webkit.org/show_bug.cgi?id=61321
3191 Old versions of requirejs (< 0.15.0) try to load scripts in parallel but execute them in
3192 order. This used to work in webkit by setting a bogus script type (script/cache), then
3193 changing the type to a valid one when they wanted to execute it. This hack translates the
3194 behavior into the new API (by disabling forceAsync).
3196 * html/HTMLScriptElement.cpp:
3197 (WebCore::needsOldRequirejsQuirk): Added.
3198 (WebCore::HTMLScriptElement::insertedIntoDocument):
3199 If hack is needed, set a proper script type so script loads.
3200 If script isn't async, disable forceAsync so script executes in order.
3202 2011-05-25 Andreas Kling <kling@webkit.org>
3204 Reviewed by David Levin.
3206 Rebaseline run-bindings-tests.
3207 https://bugs.webkit.org/show_bug.cgi?id=61469
3209 * bindings/scripts/test/JS/:
3210 * bindings/scripts/test/V8/:
3212 2011-05-25 Levi Weintraub <leviw@chromium.org>
3214 Reviewed by Eric Seidel.
3216 Switch itemBoundingBoxRect to use IntPoint
3217 https://bugs.webkit.org/show_bug.cgi?id=60789
3219 Changing itemBoundingBoxRect to use an IntPoint representing the offset
3220 to be added tot he box rect instead of a pair of ints.
3222 No new tests since this is just refactoring.
3224 * accessibility/AccessibilityListBox.cpp:
3225 (WebCore::AccessibilityListBox::elementAccessibilityHitTest):
3226 * accessibility/AccessibilityListBoxOption.cpp:
3227 (WebCore::AccessibilityListBoxOption::elementRect):
3228 * rendering/RenderListBox.cpp:
3229 (WebCore::RenderListBox::itemBoundingBoxRect):
3230 (WebCore::RenderListBox::addFocusRingRects):
3231 (WebCore::RenderListBox::paintItemForeground):
3232 (WebCore::RenderListBox::paintItemBackground):
3233 (WebCore::RenderListBox::nodeAtPoint):
3234 * rendering/RenderListBox.h:
3236 2011-05-24 MORITA Hajime <morrita@google.com>
3238 Reviewed by Dimitri Glazkov.
3240 RenderText with empty text is not created inside ShadowContentElement
3241 https://bugs.webkit.org/show_bug.cgi?id=61111
3243 - Changed Text::rendererIsNeeded() to be shadow-aware.
3244 - previousRenderer(), nextRenderer() and parentRenderer() on NodeRenderingContext is now
3245 safe even if it's used with an attached node, which was originally used only during attach().
3246 We need this change because these APIs are called inside CharacterData::updateRenderer() callstack.
3248 Tests: fast/html/details-replace-summary-child.html
3249 fast/html/details-replace-text.html
3251 * dom/NodeRenderingContext.cpp:
3252 (WebCore::NodeRenderingContext::NodeRenderingContext):
3253 (WebCore::NodeRenderingContext::nextRenderer):
3254 (WebCore::NodeRenderingContext::previousRenderer):
3255 (WebCore::NodeRenderingContext::parentRenderer):
3256 (WebCore::NodeRenderingContext::shouldCreateRenderer):
3257 * dom/NodeRenderingContext.h:
3258 (WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle):
3260 (WebCore::Text::rendererIsNeeded):
3262 2011-05-25 Sailesh Agrawal <sail@chromium.org>
3264 Reviewed by Tony Chang.
3266 Rename ScrollbarOverlayUtilitiesMac to ScrollbarOverlayUtilitiesChromiumMac
3267 https://bugs.webkit.org/show_bug.cgi?id=61401
3269 ScrollbarOverlayUtilitiesMac.mm was being excluded from the WebCore project. Fix was to make sure the file name ended with ChromiumMac.
3272 * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.h: Copied from Source/WebCore/platform/chromium/ScrollbarOverlayUtilitiesMac.h.
3273 * platform/chromium/ScrollbarOverlayUtilitiesChromiumMac.mm: Copied from Source/WebCore/platform/chromium/ScrollbarOverlayUtilitiesMac.mm.
3274 * platform/chromium/ScrollbarOverlayUtilitiesMac.h: Removed.
3275 * platform/chromium/ScrollbarOverlayUtilitiesMac.mm: Removed.
3277 2011-05-25 James Robinson <jamesr@chromium.org>
3279 Reviewed by Geoffrey Garen
3281 CachedResource overhead size calculation ignores the actual size of the URL
3282 https://bugs.webkit.org/show_bug.cgi?id=61481
3284 CachedResource::overheadSize is used to determine the size of an entry in the memory cache to know when to evict
3285 it. When the resource is a large data: URL, for example representing image or audio data, the URL size itself
3288 This patch uses an estimate of actual number of bytes used by the URL that is valid for ASCII urls and close for
3289 other types of strings instead of a fixed number.
3291 * loader/cache/CachedResource.cpp:
3292 (WebCore::CachedResource::overheadSize):
3294 2011-05-25 Oliver Hunt <oliver@apple.com>
3296 Reviewed by Geoffrey Garen.
3298 Make RegExp GC allocated
3299 https://bugs.webkit.org/show_bug.cgi?id=61490
3301 RegExp is GC'd so we don't need the RefPtr shenanigans anymore.
3303 * bindings/js/SerializedScriptValue.cpp:
3304 (WebCore::CloneDeserializer::readTerminal):
3306 2011-05-25 Martin Robinson <mrobinson@igalia.com>
3308 Reviewed by Dirk Schulze.
3310 [Cairo] Move the global alpha property from GraphicsContext to PlatformContextCairo
3311 https://bugs.webkit.org/show_bug.cgi?id=60185
3313 Remove Cairo #ifdefs from GraphicsContext.h by pushing the global alpha
3314 state into PlatformContextCairo. Since Cairo is the only platform that needs
3315 to store this, this is the proper place for it. Change the image mask stack into
3316 a more generic state stack that can keep track of the multiple bits of platform
3317 specific state and properly handle save/restore pairs.
3319 No new tests. This is just a code refactor.
3321 * platform/graphics/GraphicsContext.h: Remove Cairo #ifdefs.
3322 (WebCore::GraphicsContextState::GraphicsContextState): Ditto.
3323 * platform/graphics/cairo/ContextShadowCairo.cpp: Access global alpha from PlatformContextCairo now.
3324 (WebCore::ContextShadow::drawRectShadow):
3325 * platform/graphics/cairo/FontCairo.cpp: Ditto.
3326 (WebCore::Font::drawGlyphs):
3327 * platform/graphics/cairo/GraphicsContextCairo.cpp:
3328 (WebCore::setPlatformFill): Ditto.
3329 (WebCore::setPlatformStroke): Ditto.
3330 (WebCore::GraphicsContext::setAlpha): Ditto.
3331 * platform/graphics/cairo/PlatformContextCairo.cpp: Moved ImageMaskInformation class from the
3332 header file, since it can be private now. Abstract the image mask state and the global alpha
3333 in a generic State class.
3334 (WebCore::ImageMaskInformation::update):
3335 (WebCore::ImageMaskInformation::isValid):
3336 (WebCore::ImageMaskInformation::maskSurface):
3337 (WebCore::ImageMaskInformation::maskRect):
3338 (WebCore::PlatformContextCairo::State::State): Added.
3339 (WebCore::PlatformContextCairo::PlatformContextCairo): Intialize the state
3340 class when this class is constructed.
3341 (WebCore::PlatformContextCairo::restore): Now pop the last state off the state stack.
3342 (WebCore::PlatformContextCairo::~PlatformContextCairo): Added this so that we can forward
3343 declare the State class in the header.
3344 (WebCore::PlatformContextCairo::save): Push a new state onto the stack.
3345 (WebCore::PlatformContextCairo::pushImageMask): Operate on the state stack now.
3346 (WebCore::PlatformContextCairo::globalAlpha): Added.
3347 (WebCore::PlatformContextCairo::setGlobalAlpha): Added.
3348 (WebCore::PlatformContextCairo::drawSurfaceToContext: Call globalAlpha().
3349 * platform/graphics/cairo/PlatformContextCairo.h: Changed the image mask stack
3350 into a more generic state stack, much like PlatformContextChromium.
3352 2011-05-25 Mark Rowe <mrowe@apple.com>
3354 Reviewed by Sam Weinig.
3356 <rdar://problem/9504058> Need some way to query user gesture state from injected bundle
3358 * WebCore.exp.in: Add an export that WebKit2 needs.
3360 2011-05-25 Jer Noble <jer.noble@apple.com>
3362 Ureviewed; Build fix for Leopard and Snow Leopard.
3364 Move _wkQTMovieResolvedURL outside of a #if check for Leopard and SL.
3368 2011-05-25 Michael Saboff <msaboff@apple.com>
3370 Reviewed by Sam Weinig.
3372 Cleanup of commented items from https://bugs.webkit.org/show_bug.cgi?id=61222
3373 https://bugs.webkit.org/show_bug.cgi?id=61478
3375 Cleanup of further comments after patch was landed. Changes include
3376 using /2 instead of >>1, adding a blank line after class include,
3377 making method names start with lower case and adding clarifying
3380 No new tests as the changes are stylistic and not functional.
3382 * loader/cache/MemoryCache.cpp:
3383 (WebCore::MemoryCache::pruneLiveResourcesToPercentage):
3384 (WebCore::MemoryCache::pruneDeadResourcesToPercentage):
3385 * loader/cache/MemoryCache.h:
3386 (WebCore::MemoryCache::pruneToPercentage):
3387 * platform/mac/MemoryPressureHandlerMac.mm:
3388 (WebCore::MemoryPressureHandler::respondToMemoryPressure):
3390 2011-05-25 Stephanie Lewis <slewis@apple.com>
3392 Reviewed by Brady Eidson.
3394 https://bugs.webkit.org/show_bug.cgi?id=61407
3395 part of <rdar://problem/8675177>
3396 Move Quicklook quirk down into WebCore so it can be caculated when the user
3397 starts a reload. Restructure the conditions so it only called when absolutely
3400 No change in functionality so no new tests.
3402 * loader/FrameLoader.cpp:
3403 (WebCore::FrameLoader::subresourceCachePolicy):
3404 * page/Settings.cpp:
3405 (WebCore::Settings::Settings):
3407 * platform/network/cf/ResourceRequest.h:
3408 * platform/network/mac/ResourceRequestMac.mm:
3409 (WebCore::initQuickLookResourceCachingQuirks):
3410 (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
3412 2011-05-24 Jer Noble <jer.noble@apple.com>
3414 Reviewed by Darin Adler.
3416 Video fails to play on Vimeo
3417 https://bugs.webkit.org/show_bug.cgi?id=61403
3419 No new tests; Covered by media/video-canvas-source.html.
3421 Vimeo redirects their assets from player.vimeo.com to av.vimeo.com, which is rejected
3422 by AVFoundation and QTKit due to our setting a ForbidCrossSiteReference option when
3423 creating an AVAsset or QTMovie. Instead, we should just reject local->remote and
3424 remote->local and make our answer to hasSingleSecurityOrigin dynamic.
3426 When checking whether a given request has a single security origin, use a
3427 SecurityOrigin to check the host, port, and scheme.
3430 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
3431 (WebCore::MediaPlayerPrivateAVFoundation::assetURL): Added.
3432 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h:
3433 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
3434 (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Exchange ForbidCrossSiteReference
3435 for ForbidRemoteReferenceToLocal and ForbidLocalReferenceToRemote
3436 (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin): Check to see that the
3437 requested and resolved URLs have the same host and port.
3438 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3439 (WebCore::MediaPlayerPrivateQTKit::commonMovieAttributes): Exchange NoCrossSiteAttribute for
3440 NoRemoteToLocalSiteAttribute and NoLocalToRemoteSiteAttribute.
3441 (WebCore::MediaPlayerPrivateQTKit::hasSingleSecurityOrigin): Check to see that the
3442 requested and resolved URLs have the same host and port.
3443 * platform/mac/WebCoreSystemInterface.h: Added wkAVAssetResolvedURL.
3444 * platform/mac/WebCoreSystemInterface.mm: Ditto.
3446 2011-05-25 Andrew Scherkus <scherkus@chromium.org>
3448 Reviewed by Eric Carlson.
3450 Fix media element regression where ended event stopped firing after changing the src attribute.
3452 https://bugs.webkit.org/show_bug.cgi?id=61336
3454 Test: media/media-ended.html
3456 * html/HTMLMediaElement.cpp:
3457 (WebCore::HTMLMediaElement::prepareForLoad):
3459 2011-05-25 Jer Noble <jer.noble@apple.com>
3461 Reviewed by Darin Adler.
3463 REGRESSION: Fullscreen button on embedded Vimeo videos does nothing
3464 https://bugs.webkit.org/show_bug.cgi?id=61461
3466 Tests: fullscreen/full-screen-iframe-legacy.html
3468 Allow calls from the legacy full-screen API to bypass the iframe
3469 "webkitallowfullscreen" requirement by adding a parameter to
3470 Document::webkitRequestFullScreenForElement specifying the strictness
3471 of that check. Specify this new parameter everywhere that function is
3472 called, including in the default controls' full-screen button handler.
3475 (WebCore::Document::webkitRequestFullScreenForElement):
3478 (WebCore::Element::requestFullScreen): Renamed from webkitRequestFullScreen.
3479 * html/HTMLMediaElement.cpp:
3480 (WebCore::HTMLMediaElement::enterFullscreen):
3481 * html/shadow/MediaControlElements.cpp:
3482 (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
3484 2011-05-25 Kulanthaivel Palanichamy <kulanthaivel@codeaurora.org>
3486 Reviewed by David Hyatt.
3488 Selector matching doesn't update when DOM changes ("[data-a=x] #x")
3489 https://bugs.webkit.org/show_bug.cgi?id=60752
3491 Currently CSSStyleSelector maintains a HashSet of attributes (m_selectorAttrs)
3492 which are used in CSS attribute selectors to determine the need for style
3493 recalculation whenever element attributes are manipulated in DOM.
3494 In certain conditions (element with no style, element is styled and attribute
3495 is not a mapped attribute, attribute is of type 'type' or read-only)
3496 even when attribute selector matches for an element, the attribute is not
3497 added to m_selectorAttrs. This results in missing style recalculations
3498 when a DOM element attribute is changed and is not found in m_selectorAttrs.
3500 Removing the above said conditions in
3501 CSSStyleSelector::SelectorChecker::checkOneSelector() for registering
3502 attributes in m_selectorAttrs will solve this issue. But this particular
3503 function is called numerous times which triggers adding duplicate attributes
3506 This patch follows the approach taken for collecting ids in selectors, where
3507 all the attributes in selectors are added to a HashSet at the time of adding
3508 style rules to CSSStyleSelector from StyleSheets and when
3509 CSSStyleSelector::hasSelectorForAttribute() is called, the attribute is
3510 simply looked up in this pre-populated hash set.
3512 Test: fast/css/attribute-selector-dynamic-no-elementstyle.html
3514 * css/CSSStyleSelector.cpp:
3515 (WebCore::CSSStyleSelector::SelectorChecker::checkSelector):
3516 (WebCore::CSSStyleSelector::checkSelector):
3517 (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
3518 (WebCore::collectFeaturesFromSelector):
3519 (WebCore::CSSStyleSelector::applyProperty):
3520 (WebCore::CSSStyleSelector::hasSelectorForAttribute):
3521 * css/CSSStyleSelector.h:
3523 2011-05-25 Ryosuke Niwa <rniwa@webkit.org>
3525 Reviewed by James Robinson.
3527 CSSStyleSelector should provide a way to obtain rules from non-author stylesheets
3528 https://bugs.webkit.org/show_bug.cgi?id=61454
3530 Replaced bool and enum arguments of styleRulesForElement and pseudoStyleRulesForElement
3531 by one enum, and provided a way to obtain rules from UA/user stylesheets.
3533 * css/CSSRule.h: Removed CSSRuleFilter.
3534 * css/CSSStyleSelector.cpp:
3535 (WebCore::CSSStyleSelector::styleRulesForElement): See above.
3536 (WebCore::CSSStyleSelector::pseudoStyleRulesForElement): Ditto.
3537 * css/CSSStyleSelector.h: Moved CSSRuleFilter here.
3538 * editing/markup.cpp:
3539 (WebCore::styleFromMatchedRulesForElement): Calls styleRulesForElement.
3540 * inspector/InspectorCSSAgent.cpp:
3541 (WebCore::InspectorCSSAgent::getStylesForNode): Ditto.
3542 * page/DOMWindow.cpp:
3543 (WebCore::DOMWindow::getMatchedCSSRules): Ditto.
3545 2011-05-25 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
3547 Reviewed by Andreas Kling.
3549 [Qt] JSC bridge: implement __qt_sender__ without using Scope Chain
3550 https://bugs.webkit.org/show_bug.cgi?id=61343
3552 Create a stack to keep track of the sender objects. This is simpler than
3553 the similar mechanism in QObject (C++ API), that keeps a stack per-object.
3555 Since we do not support multiple threads, one static stack will be enough for
3556 handling the behavior.
3558 This behavior is covered by the tst_QWebFrame::connectAndDisconnect() auto test.
3560 * bridge/qt/qt_instance.cpp:
3561 (JSC::Bindings::QtInstance::qtSenderStack):
3562 We have one static stack of QObject*. The top of the stack contains the
3563 last object that emitted signal that called a JavaScript function.
3565 * bridge/qt/qt_instance.h:
3566 (JSC::Bindings::QtInstance::QtSenderStack::top):
3567 (JSC::Bindings::QtInstance::QtSenderStack::push):
3568 (JSC::Bindings::QtInstance::QtSenderStack::pop):
3569 Minimal functionality to manipulate the sender stack.
3571 * bridge/qt/qt_runtime.cpp:
3572 (JSC::Bindings::QtConnectionObject::execute):
3573 Remove the previous code that modified the scope chain. Push the sender object
3574 to the stack before calling the JavaScript function (the "slot" in Qt-speak) and
3577 2011-05-25 Sheriff Bot <webkit.review.bot@gmail.com>
3579 Unreviewed, rolling out r87257.
3580 http://trac.webkit.org/changeset/87257
3581 https://bugs.webkit.org/show_bug.cgi?id=61457
3583 This broke layout tests, see bug 61431. (Requested by
3584 hwennborg on #webkit).
3586 * storage/IDBBackingStore.h:
3587 * storage/IDBFactoryBackendImpl.cpp:
3588 (WebCore::IDBFactoryBackendImpl::IDBFactoryBackendImpl):
3589 (WebCore::IDBFactoryBackendImpl::open):
3590 * storage/IDBFactoryBackendImpl.h:
3591 * storage/IDBFactoryBackendInterface.h:
3592 * storage/IDBLevelDBBackingStore.cpp:
3593 * storage/IDBLevelDBBackingStore.h:
3594 * storage/IDBSQLiteBackingStore.cpp:
3595 * storage/IDBSQLiteBackingStore.h:
3597 2011-05-25 Alexis Menard <alexis.menard@openbossa.org>
3599 Reviewed by Eric Carlson.
3601 [Qt] Enable usage of QuickTime mediaplayer for the Qt port on Mac.
3602 https://bugs.webkit.org/show_bug.cgi?id=61279
3604 Enable the QuickTime backend for the Qt port on Mac. The patch adds the bits in WebCore
3605 to enable the QTKit backend of the Mac port. It can be enabled by passing DEFINES+=USE_QTKIT=1
3606 when calling build-webkit.
3612 * platform/SharedBuffer.h:
3613 * platform/cf/KURLCFNet.cpp:
3614 * platform/cf/SharedBufferCF.cpp:
3615 * platform/graphics/FloatSize.h:
3616 * platform/graphics/IntRect.h:
3617 * platform/graphics/IntSize.h:
3618 * platform/graphics/MediaPlayer.cpp:
3619 * platform/graphics/cg/FloatSizeCG.cpp:
3620 * platform/graphics/cg/IntRectCG.cpp:
3621 * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3622 * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3623 (WebCore::MediaPlayerPrivateQTKit::createQTMovieView):
3624 (WebCore::MediaPlayerPrivateQTKit::createQTVideoRenderer):
3625 (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
3626 (WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
3627 (WebCore::MediaPlayerPrivateQTKit::paint):
3628 (-[WebCoreMovieObserver layerHostChanged:]):
3629 * platform/mac/KURLMac.mm:
3630 * platform/mac/SharedBufferMac.mm:
3631 (+[WebCoreSharedBufferData initialize]):
3632 * platform/mac/WebCoreObjCExtras.mm:
3633 * platform/qt/WebCoreSystemInterface.h: Added.
3634 * platform/qt/WebCoreSystemInterface.mm: Added.
3636 2011-05-25 Rob Buis <rbuis@rim.com>
3638 Reviewed by Eric Seidel.
3639 New test rubber-stamped by Dirk Schulze.
3641 WebKit does not handle missing filter elements correctly
3642 https://bugs.webkit.org/show_bug.cgi?id=12569
3644 Do not render elements that reference non-existant filters.
3646 Test: svg/W3C-SVG-1.1-SE/filters-felem-01-b.svg
3648 * rendering/svg/SVGRenderSupport.cpp:
3649 (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
3651 2011-05-25 Nate Chapin <japhet@chromium.org>
3653 Reviewed by Adam Barth.
3655 Put view-source documents in a unique origin and always allow them to run scripts. This ensures tools like
3656 XMLViewer work even when scripts are disabled, while still providing the protections expected when scripts are disabled.
3657 https://bugs.webkit.org/show_bug.cgi?id=59113
3659 * bindings/ScriptControllerBase.cpp:
3660 (WebCore::ScriptController::canExecuteScripts): Check whether the document is viewing source, and allow scripts in that case.
3661 * css/CSSStyleSelector.cpp:
3662 (WebCore::CSSStyleSelector::matchUARules):
3664 (WebCore::Document::Document):
3665 (WebCore::Document::setIsViewSource): Renamed from setUsesViewSourceStyles(), set's a unique security origin if we are viewing source.
3667 (WebCore::Document::isViewSource): Renamed from usesViewSourceStyles().
3668 * html/HTMLViewSourceDocument.cpp:
3669 (WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
3670 * loader/FrameLoader.cpp:
3671 (WebCore::FrameLoader::receivedFirstData):
3672 * xml/XMLTreeViewer.cpp:
3673 (WebCore::XMLTreeViewer::transformDocumentToTreeView):
3675 2011-05-25 Julien Chaffraix <jchaffraix@codeaurora.org>
3677 Reviewed by James Robinson.
3679 http://philip.html5.org/tests/canvas/suite/tests/2d.composite.uncovered.fill.source-in.html fails
3680 https://bugs.webkit.org/show_bug.cgi?id=39027
3684 - Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.fill.source-out.html
3685 https://bugs.webkit.org/show_bug.cgi?id=48295
3687 - Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.source-in.html
3688 https://bugs.webkit.org/show_bug.cgi?id=48304
3690 - Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.source-out.html
3691 https://bugs.webkit.org/show_bug.cgi?id=48305
3693 Those 4 tests have the same root cause for failing. Instead of splitting them in 2 fixes, I squashed
3694 them together as the fix is common.
3696 Based on an older work by Ariya Hidayat.
3698 * html/canvas/CanvasRenderingContext2D.cpp:
3699 (WebCore::CanvasRenderingContext2D::fill):
3700 (WebCore::CanvasRenderingContext2D::fillRect): Added call displayTransparencyEverywhere for those 2
3701 cases if we have to.
3703 (WebCore::CanvasRenderingContext2D::shouldDisplayTransparencyEverywhere): This method returns true if
3704 the spec says to display transparency everywhere. We only do so for source-in and source-out for now.
3705 (WebCore::CanvasRenderingContext2D::displayTransparencyEverywhere): This method implements the spec
3706 (which matches other browsers' behavior) and "display transparency elsewhere".
3708 * html/canvas/CanvasRenderingContext2D.h: Added the two previous methods.
3710 2011-05-25 Levi Weintraub <leviw@chromium.org>
3712 Reviewed by Eric Seidel.
3714 Add IntPoint versions of IntRect::move and IntPoint::move
3715 https://bugs.webkit.org/show_bug.cgi?id=61390
3717 Adding move methods to IntRect and IntPoint that take an IntPoint
3718 that's acting as an offset. Since we also apply negative offsets,
3719 also adding a single parameter operator- for IntPoint.
3721 No new tests since this is refactoring.
3723 * page/FrameView.cpp:
3724 (WebCore::FrameView::invalidateScrollbarRect):
3725 (WebCore::FrameView::convertFromRenderer):
3726 (WebCore::FrameView::convertToRenderer):
3727 * platform/ScrollView.cpp:
3728 (WebCore::ScrollView::wheelEvent):
3729 * platform/ScrollView.h:
3730 (WebCore::ScrollView::convertChildToSelf):
3731 (WebCore::ScrollView::convertSelfToChild):
3732 * platform/ScrollbarThemeComposite.cpp:
3733 (WebCore::ScrollbarThemeComposite::invalidatePart):
3734 * platform/graphics/IntPoint.h:
3735 (WebCore::IntPoint::move):
3736 (WebCore::operator-):
3737 * platform/graphics/IntRect.h:
3738 (WebCore::IntRect::move):
3739 * platform/graphics/filters/FilterEffect.cpp:
3740 (WebCore::FilterEffect::requestedRegionOfInputImageData):
3741 * platform/graphics/gpu/Texture.cpp:
3742 (WebCore::Texture::updateSubRect):
3743 * platform/mac/WidgetMac.mm:
3744 (WebCore::Widget::paint):
3745 * rendering/RenderBlock.cpp:
3746 (WebCore::RenderBlock::logicalRectToPhysicalRect):
3747 (WebCore::RenderBlock::selectionGaps):
3748 * rendering/RenderBox.cpp:
3749 (WebCore::RenderBox::offsetFromContainer):
3750 (WebCore::RenderBox::computeRectForRepaint):
3751 (WebCore::RenderBox::localCaretRect):
3752 * rendering/RenderDetailsMarker.cpp:
3753 (WebCore::RenderDetailsMarker::paint):
3754 * rendering/RenderInline.cpp:
3755 (WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
3756 * rendering/RenderInputSpeech.cpp:
3757 (WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
3758 * rendering/RenderLayerBacking.cpp:
3759 (WebCore::paintScrollbar):
3760 (WebCore::RenderLayerBacking::paintContents):
3761 * rendering/RenderLayerCompositor.cpp:
3762 (WebCore::paintScrollbar):
3763 (WebCore::RenderLayerCompositor::paintContents):
3764 * rendering/RenderListItem.cpp:
3765 (WebCore::RenderListItem::positionListMarker):
3766 * rendering/RenderListMarker.cpp:
3767 (WebCore::RenderListMarker::paint):
3768 * rendering/RenderTableCell.cpp:
3769 (WebCore::RenderTableCell::computeRectForRepaint):
3770 * rendering/RenderTextControlSingleLine.cpp:
3771 (WebCore::RenderTextControlSingleLine::nodeAtPoint):
3772 * rendering/RenderView.cpp:
3773 (WebCore::RenderView::repaintViewRectangle):
3775 2011-05-25 Levi Weintraub <leviw@chromium.org>
3777 Reviewed by Eric Seidel.
3779 Switch addFocusRingRects to use IntPoint
3780 https://bugs.webkit.org/show_bug.cgi?id=60783
3782 Switching addFocusRingRects to use an IntPoint representing the offset being
3783 applied instead of a pair of ints.
3785 No new tests as this is only refactoring.
3787 * platform/graphics/FloatSize.h:
3788 (WebCore::flooredIntPoint):
3789 * rendering/RenderBlock.cpp:
3790 (WebCore::RenderBlock::addFocusRingRects):
3791 * rendering/RenderBlock.h:
3792 * rendering/RenderBox.cpp:
3793 (WebCore::RenderBox::addFocusRingRects):
3794 * rendering/RenderBox.h:
3795 * rendering/RenderInline.cpp:
3796 (WebCore::RenderInline::addFocusRingRects):
3797 * rendering/RenderInline.h:
3798 * rendering/RenderListBox.cpp:
3799 (WebCore::RenderListBox::addFocusRingRects):
3800 * rendering/RenderListBox.h:
3801 * rendering/RenderObject.cpp:
3802 (WebCore::RenderObject::paintFocusRing):
3803 (WebCore::RenderObject::absoluteFocusRingQuads):
3804 * rendering/RenderObject.h:
3805 (WebCore::RenderObject::addFocusRingRects):
3806 * rendering/RenderTextControl.cpp:
3807 (WebCore::RenderTextControl::addFocusRingRects):
3808 * rendering/RenderTextControl.h:
3809 * rendering/RenderTextControlSingleLine.cpp:
3810 (WebCore::RenderTextControlSingleLine::addFocusRingRects):
3811 * rendering/RenderTextControlSingleLine.h:
3812 * rendering/svg/RenderSVGContainer.cpp:
3813 (WebCore::RenderSVGContainer::addFocusRingRects):
3814 * rendering/svg/RenderSVGContainer.h:
3815 * rendering/svg/RenderSVGImage.cpp:
3816 (WebCore::RenderSVGImage::addFocusRingRects):
3817 * rendering/svg/RenderSVGImage.h:
3818 * rendering/svg/RenderSVGPath.cpp:
3819 (WebCore::RenderSVGPath::addFocusRingRects):
3820 * rendering/svg/RenderSVGPath.h:
3822 2011-05-25 Sheriff Bot <webkit.review.bot@gmail.com>
3824 Unreviewed, rolling out r87229.
3825 http://trac.webkit.org/changeset/87229
3826 https://bugs.webkit.org/show_bug.cgi?id=61445
3828 Lots of tests crashing in
3829 CFNetwork!URLResponse::createFilenameFromResponseHeaders on
3830 Windows XP (Requested by aroben on #webkit).
3832 * platform/network/ResourceResponseBase.cpp:
3833 (WebCore::ResourceResponseBase::adopt):
3834 (WebCore::ResourceResponseBase::suggestedFilename):
3835 (WebCore::ResourceResponseBase::setSuggestedFilename):
3836 (WebCore::ResourceResponseBase::httpStatusText):
3837 (WebCore::ResourceResponseBase::setHTTPStatusText):
3838 (WebCore::ResourceResponseBase::httpHeaderField):
3839 (WebCore::ResourceResponseBase::setHTTPHeaderField):
3840 (WebCore::ResourceResponseBase::httpHeaderFields):
3841 (WebCore::ResourceResponseBase::isAttachment):
3842 (WebCore::ResourceResponseBase::setLastModifiedDate):
3843 (WebCore::ResourceResponseBase::lastModifiedDate):
3844 (WebCore::ResourceResponseBase::wasCached):
3845 (WebCore::ResourceResponseBase::connectionReused):
3846 (WebCore::ResourceResponseBase::setConnectionReused):
3847 (WebCore::ResourceResponseBase::connectionID):
3848 (WebCore::ResourceResponseBase::setConnectionID):
3849 (WebCore::ResourceResponseBase::resourceLoadTiming):
3850 (WebCore::ResourceResponseBase::setResourceLoadTiming):
3851 (WebCore::ResourceResponseBase::resourceLoadInfo):
3852 (WebCore::ResourceResponseBase::setResourceLoadInfo):
3853 * platform/network/ResourceResponseBase.h:
3854 * platform/network/cf/ResourceResponse.h:
3855 (WebCore::ResourceResponse::ResourceResponse):
3856 * platform/network/cf/ResourceResponseCFNet.cpp:
3857 (WebCore::ResourceResponse::platformLazyInit):
3858 * platform/network/mac/ResourceResponseMac.mm:
3859 (WebCore::ResourceResponse::platformLazyInit):
3861 2011-05-25 Igor Oliveira <igor.oliveira@openbossa.org>
3863 Reviewed by Antonio Gomes.
3865 [Qt] QtWebKit crashes when dragging not loaded images
3866 https://bugs.webkit.org/show_bug.cgi?id=61314
3868 Checks if nativeImageForCurrentFrame is a valid pointer.
3870 Test: http/tests/misc/drag-not-loaded-image.html
3872 * platform/qt/DragImageQt.cpp:
3873 (WebCore::createDragImageFromImage):
3875 2011-05-25 Ryuan Choi <ryuan.choi@samsung.com>
3877 Reviewed by Xan Lopez.
3879 [GTK] combobox and scrollbar are rendered small size at gtk+2.22.0
3880 https://bugs.webkit.org/show_bug.cgi?id=61436
3882 Fix arguments of gdk_drawable_get_size.
3884 No new tests, no behavior change.
3886 * platform/gtk/GtkVersioning.c:
3887 (getGdkDrawableSize):
3889 2011-05-23 Alexander Pavlov <apavlov@chromium.org>
3891 Reviewed by Yury Semikhatsky.
3893 Web Inspector: extreme lagging when searching for "img[src*="
3894 https://bugs.webkit.org/show_bug.cgi?id=61282
3896 No new tests, as this is a refactoring: ElementsTreeElement DOM is manipulated directly
3897 when built and search-highlighted, rather than through innerHTML.
3899 * inspector/front-end/DOMSyntaxHighlighter.js:
3900 (WebInspector.DOMSyntaxHighlighter):
3901 (WebInspector.DOMSyntaxHighlighter.prototype.createSpan):
3902 * inspector/front-end/ElementsPanel.js:
3903 (WebInspector.ElementsPanel.prototype._hideSearchHighlights):
3904 * inspector/front-end/ElementsTreeOutline.js:
3905 (WebInspector.ElementsTreeElement.prototype.highlightSearchResults):
3906 (WebInspector.ElementsTreeElement.prototype.hideSearchHighlights):
3907 (WebInspector.ElementsTreeElement.prototype._updateSearchHighlight.updateEntryShow):
3908 (WebInspector.ElementsTreeElement.prototype._updateSearchHighlight.updateEntryHide):
3909 (WebInspector.ElementsTreeElement.prototype._updateSearchHighlight):
3910 (WebInspector.ElementsTreeElement.prototype._addNewAttribute):
3911 (WebInspector.ElementsTreeElement.prototype.updateTitle):
3912 (WebInspector.ElementsTreeElement.prototype._buildAttributeDOM):
3914 * inspector/front-end/utilities.js:
3917 2011-05-25 Leandro Gracia Gil <leandrogracia@chromium.org>
3919 Reviewed by Tony Gentilcore.
3921 Introduce HTML5 track list objects.
3922 https://bugs.webkit.org/show_bug.cgi?id=60184
3924 Introduce the TrackList, MultipleTrackList and ExclusiveTrackList objects
3925 for their use in the MediaStream API and the HTML Media Element.
3926 Current spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/the-iframe-element.html#tracklist
3928 The Media Stream API will test this feature in the bug 56587.
3929 More tests related to the HTML Media Element may be added later.
3932 * CodeGenerators.pri:
3933 * DerivedSources.cpp:
3934 * DerivedSources.make:
3935 * GNUmakefile.list.am:
3938 * WebCore.vcproj/WebCore.vcproj:
3939 * WebCore.xcodeproj/project.pbxproj:
3940 * bindings/js/JSEventTarget.cpp:
3942 * bindings/v8/V8DOMWrapper.cpp:
3943 (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
3944 * dom/DOMAllInOne.cpp:
3945 * dom/EventTarget.cpp:
3946 (WebCore::EventTarget::toTrackList):
3947 (WebCore::EventTarget::toMultipleTrackList):
3948 (WebCore::EventTarget::toExclusiveTrackList):
3949 * dom/EventTarget.h:
3950 * dom/ExclusiveTrackList.cpp: Added.
3951 (WebCore::ExclusiveTrackList::create):
3952 (WebCore::ExclusiveTrackList::ExclusiveTrackList):
3953 (WebCore::ExclusiveTrackList::~ExclusiveTrackList):
3954 (WebCore::ExclusiveTrackList::clear):
3955 (WebCore::ExclusiveTrackList::select):
3956 (WebCore::ExclusiveTrackList::toExclusiveTrackList):
3957 * dom/ExclusiveTrackList.h: Added.
3958 (WebCore::ExclusiveTrackList::selectedIndex):
3959 * dom/ExclusiveTrackList.idl: Added.
3960 * dom/MultipleTrackList.cpp: Added.
3961 (WebCore::MultipleTrackList::create):
3962 (WebCore::MultipleTrackList::MultipleTrackList):
3963 (WebCore::MultipleTrackList::~MultipleTrackList):
3964 (WebCore::MultipleTrackList::clear):
3965 (WebCore::MultipleTrackList::isEnabled):
3966 (WebCore::MultipleTrackList::enable):
3967 (WebCore::MultipleTrackList::disable):
3968 (WebCore::MultipleTrackList::toMultipleTrackList):
3969 * dom/MultipleTrackList.h: Added.
3970 * dom/MultipleTrackList.idl: Added.
3971 * dom/TrackList.cpp: Added.
3972 (WebCore::Track::create):
3973 (WebCore::Track::Track):
3974 (WebCore::TrackList::create):
3975 (WebCore::TrackList::TrackList):
3976 (WebCore::TrackList::~TrackList):
3977 (WebCore::TrackList::length):
3978 (WebCore::TrackList::checkIndex):
3979 (WebCore::TrackList::getID):
3980 (WebCore::TrackList::getKind):
3981 (WebCore::TrackList::getLabel):
3982 (WebCore::TrackList::getLanguage):
3983 (WebCore::TrackList::clear):
3984 (WebCore::TrackList::postChangeEvent):
3985 (WebCore::TrackList::dispatchChangeEvent):
3986 (WebCore::TrackList::toTrackList):
3987 (WebCore::TrackList::scriptExecutionContext):
3988 (WebCore::TrackList::eventTargetData):
3989 (WebCore::TrackList::ensureEventTargetData):
3990 * dom/TrackList.h: Added.
3991 (WebCore::Track::id):
3992 (WebCore::Track::kind):
3993 (WebCore::Track::label):
3994 (WebCore::Track::language):
3995 (WebCore::TrackList::DispatchTask::create):
3996 (WebCore::TrackList::DispatchTask::performTask):
3997 (WebCore::TrackList::DispatchTask::DispatchTask):
3998 (WebCore::TrackList::refEventTarget):
3999 (WebCore::TrackList::derefEventTarget):
4000 * dom/TrackList.idl: Added.
4002 2011-05-25 Keishi Hattori <keishi@webkit.org>
4004 Reviewed by Kent Tamura.
4006 Move ElementWithPseudoId to separate file
4007 https://bugs.webkit.org/show_bug.cgi?id=61430
4009 No new tests because no behavior changes.
4011 * CMakeLists.txt: Added ElementWithPseudoId.cpp
4012 * GNUmakefile.list.am: Added ElementWithPseudoId.{h,cpp}
4013 * WebCore.gypi: Added ElementWithPseudoId.{h,cpp}
4014 * WebCore.pro: Added ElementWithPseudoId.{h,cpp}
4015 * WebCore.vcproj/WebCore.vcproj: Added ElementWithPseudoId.{h,cpp}
4016 * WebCore.xcodeproj/project.pbxproj: Added ElementWithPseudoId.{h,cpp}
4017 * html/ValidationMessage.cpp: Removed ElementWithPseudoId definition.
4018 * html/shadow/ElementWithPseudoId.cpp: Added.
4019 (WebCore::ElementWithPseudoId::shadowPseudoId):
4020 * html/shadow/ElementWithPseudoId.h: Added.
4021 (WebCore::ElementWithPseudoId::create):
4022 (WebCore::ElementWithPseudoId::ElementWithPseudoId):
4024 2011-05-25 Alexis Menard <alexis.menard@openbossa.org>
4026 Reviewed by Antonio Gomes.
4028 [Qt] When QWebView has a different style set on it then the scrollbars are not rendered correctly
4029 https://bugs.webkit.org/show_bug.cgi?id=34635
4031 Make sure the scrollbar is properly rendered on Mac with another style than the Mac style. The code had
4032 two paths, one for Mac and one for any other styles. The problem is that on Mac you can still run the
4033 application with -style plastique for example, therefore the code used for other styles should also be
4034 used whenever the current style is not the Mac style.
4036 * platform/qt/ScrollbarThemeQt.cpp:
4037 (WebCore::ScrollbarThemeQt::paint):
4039 2011-05-25 Yuta Kitamura <yutak@chromium.org>
4041 Reviewed by Kent Tamura.
4043 WebSocket: Use fail() when WebSocketChannel has failed
4044 https://bugs.webkit.org/show_bug.cgi?id=61353
4046 An existing error message has been modified, but it is impossible