ca66596f89220f8699967417e199ff6597048f9f
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-05-31  Andreas Kling  <kling@webkit.org>
2
3         Reviewed by Antti Koivisto.
4
5         Canvas/JSC: Auto-generate overloads for setShadow()
6         https://bugs.webkit.org/show_bug.cgi?id=61786
7
8         Move CanvasRenderingContext2D.setShadow() to auto-generated JSC bindings.
9
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.
13
14         Test: fast/canvas/canvas-overloads-setShadow.html
15
16         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
17         * html/canvas/CanvasRenderingContext2D.idl:
18
19 2011-05-31  Andreas Kling  <kling@webkit.org>
20
21         Reviewed by Antti Koivisto.
22
23         Canvas/JSC: Auto-generate overloads for drawImageFromRect()
24         https://bugs.webkit.org/show_bug.cgi?id=61709
25
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.
30
31         Test: fast/canvas/canvas-overloads-drawImageFromRect.html
32
33         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
34         * html/canvas/CanvasRenderingContext2D.h:
35         * html/canvas/CanvasRenderingContext2D.idl:
36
37 2011-05-31  Andreas Kling  <kling@webkit.org>
38
39         Reviewed by Antti Koivisto.
40
41         Canvas/JSC: Auto-generate overloads for drawImage()
42         https://bugs.webkit.org/show_bug.cgi?id=61703
43
44         Move CanvasRenderingContext2D.drawImage() to auto-generated JSC bindings.
45
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.
49
50         Test: fast/canvas/canvas-overloads-drawImage.html
51
52         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
53         * html/canvas/CanvasRenderingContext2D.idl:
54
55 2011-05-31  Andreas Kling  <kling@webkit.org>
56
57         Reviewed by Antti Koivisto.
58
59         Canvas/JSC: Auto-generate overloads for strokeRect()
60         https://bugs.webkit.org/show_bug.cgi?id=61641
61
62         Move CanvasRenderingContext2D.setStrokeColor() to auto-generated JSC bindings.
63
64         No behavioral change.
65
66         Test: fast/canvas/canvas-overloads-strokeRect.html
67
68         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
69         * html/canvas/CanvasRenderingContext2D.idl:
70
71 2011-05-31  Andreas Kling  <kling@webkit.org>
72
73         Reviewed by Antti Koivisto.
74
75         Canvas/JSC: Auto-generate overloads for setFillColor()
76         https://bugs.webkit.org/show_bug.cgi?id=61635
77
78         Move CanvasRenderingContext2D.setStrokeColor() to auto-generated JSC bindings.
79
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.
83
84         Test: fast/canvas/canvas-overloads-setFillColor.html
85
86         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
87         * html/canvas/CanvasRenderingContext2D.idl:
88
89 2011-05-31  Andreas Kling  <kling@webkit.org>
90
91         Reviewed by Antti Koivisto.
92
93         Canvas/JSC: Auto-generate overloads for setStrokeColor()
94         https://bugs.webkit.org/show_bug.cgi?id=61629
95
96         Move CanvasRenderingContext2D.setStrokeColor() to auto-generated JSC bindings.
97
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.
101
102         Test: fast/canvas/canvas-overloads-setStrokeColor.html
103
104         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
105         * html/canvas/CanvasRenderingContext2D.idl:
106
107 2011-05-31  Andreas Kling  <kling@webkit.org>
108
109         Reviewed by Antti Koivisto.
110
111         Canvas/JSC: Auto-generate overloads for strokeText()
112         https://bugs.webkit.org/show_bug.cgi?id=61626
113
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.
117
118         Test: fast/canvas/canvas-overloads-strokeText.html
119
120         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
121         * html/canvas/CanvasRenderingContext2D.idl:
122
123 2011-05-31  Andreas Kling  <kling@webkit.org>
124
125         Reviewed by Antti Koivisto.
126
127         Canvas/JSC: Auto-generate overloads for fillText()
128         https://bugs.webkit.org/show_bug.cgi?id=61623
129
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.
133
134         Test: fast/canvas/canvas-overloads-fillText.html
135
136         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
137         * html/canvas/CanvasRenderingContext2D.idl:
138
139 2011-05-31  Yael Aharon  <yael.aharon@nokia.com>
140
141         Reviewed by Kenneth Rohde Christiansen.
142
143         Frame flattening is broken with nested frames
144         https://bugs.webkit.org/show_bug.cgi?id=61491
145
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.
149
150         Test: fast/frames/flattening/iframe-flattening-nested.html
151
152         * page/FrameView.cpp:
153         (WebCore::FrameView::layout):
154
155 2011-05-31  Tommy Widenflycht  <tommyw@google.com>
156
157         Reviewed by Tony Gentilcore.
158
159         Fix getUserMedia callback bindings for JSC.
160         https://bugs.webkit.org/show_bug.cgi?id=60174
161
162         This patch initializes the exception code variable to 0.
163
164         Test: fast/dom/MediaStream/argument-types.html
165
166         * bindings/js/JSNavigatorCustom.cpp:
167         (WebCore::JSNavigator::webkitGetUserMedia):
168
169 2011-05-31  Oleg Romashin  <oleg.romashin@nokia.com>
170
171         Reviewed by Benjamin Poulain.
172
173         Fix compilation with debug enabled, m_lightSource.type is not valid anymore
174         https://bugs.webkit.org/show_bug.cgi?id=61719
175
176         * platform/graphics/filters/arm/FELightingNEON.h:
177         (WebCore::FELighting::platformApplyNeon):
178
179 2011-05-31  Oliver Varga  <Varga.Oliver@stud.u-szeged.hu>
180
181         Reviewed by Nikolas Zimmermann.
182
183         Invalid color handling is broken for SVG
184         https://bugs.webkit.org/show_bug.cgi?id=58531
185
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/).
189
190         Tests: svg/custom/invalid-stroke-hex.svg
191                svg/custom/invalid-uri-stroke.svg
192
193         * rendering/svg/RenderSVGResource.cpp:
194         (WebCore::inheritColorFromParentStyleIfNeeded):
195         (WebCore::requestPaintingResource):
196
197 2011-05-31  Vangelis Kokkevis  <vangelis@chromium.org>
198
199         Reviewed by Kent Tamura.
200
201         [chromium] Avoid double deletion of DrawingBuffer's color buffer
202         texture.
203         https://bugs.webkit.org/show_bug.cgi?id=61761
204
205         Test: Verified that the DCHECK in GraphicsContext3D implementation
206         doesn't trigger.
207
208         * platform/graphics/chromium/DrawingBufferChromium.cpp:
209         (WebCore::DrawingBuffer::~DrawingBuffer):
210
211 2011-05-30  Hayato Ito  <hayato@chromium.org>
212
213         Reviewed by Ryosuke Niwa.
214
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
217
218         No new tests since added functions are only available in debug builds.
219
220         * dom/Node.cpp:
221         (WebCore::parentOrHostOrFrameOwner):
222         (WebCore::traverseNextNodeAcrossFrame):
223         (WebCore::Node::showTreeForThisAcrossFrame):
224         * dom/Node.h:
225
226 2011-05-30  James Kozianski  <koz@chromium.org>
227
228         Reviewed by Kent Tamura.
229
230         [Chromium] Make isValidProtocol() accept protocols with '+'.
231         https://bugs.webkit.org/show_bug.cgi?id=61759
232
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.
237
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.
244
245 2011-05-30  Andrey Petrov  <andrey.petrov@gmail.com>
246
247         Reviewed by Hajime Morita.
248
249         Using jQuery to show/hide IMG elements crashes WebKit
250         https://bugs.webkit.org/show_bug.cgi?id=31721
251
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.
257
258         Changing Chromium, Gtk, Mac, Qt, Win and WinCE.
259
260         Test: editing/pasteboard/copy-standalone-image-crash.html
261
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):
274
275 2011-05-30  Daniel Bates  <dbates@webkit.org>
276
277         Reviewed by Adam Barth.
278
279         Rename XSSFilter to XSSAuditor
280         https://bugs.webkit.org/show_bug.cgi?id=61718
281
282         Currently we use the names XSSFilter and XSSAuditor throughout the project.
283         Instead, we should choose one name for consistency.
284
285         No functionality was changed. So, no new tests.
286
287         * CMakeLists.txt:
288         * GNUmakefile.list.am:
289         * WebCore.gypi:
290         * WebCore.pro:
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.
321
322 2011-05-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
323
324         Reviewed by Simon Hausmann.
325
326         WebKit2: Enable serializing of data types needed for cross-process accelerated compositing
327         https://bugs.webkit.org/show_bug.cgi?id=61694
328
329         Expose a public clearAll() function to reset WebCore::Animation.
330
331         No new functionality, so no new tests.
332
333         * platform/animation/Animation.h:
334         (WebCore::Animation::clearAll):
335
336 2011-05-30  Eric Carlson  <eric.carlson@apple.com>
337
338         Reviewed by Alexey Proskuryakov.
339
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
342         <rdar://9524922>
343
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.
346
347         * loader/appcache/ApplicationCacheStorage.cpp:
348         (WebCore::ApplicationCacheStorage::store): Append the original file extension to the cache
349             file name.
350         (WebCore::ApplicationCacheStorage::writeDataToUniqueFileInDirectory): Add extension parameter.
351         * loader/appcache/ApplicationCacheStorage.h:
352
353 2011-05-30  Jer Noble  <jer.noble@apple.com>
354
355         Reviewed by Dan Bernstein.
356
357         Play/Pause button in wrong state when entering full screen on Vimeo
358         https://bugs.webkit.org/show_bug.cgi?id=61754
359
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
362         started.
363
364         * html/shadow/MediaControlRootElement.cpp:
365         (WebCore::MediaControlRootElement::reset):
366
367 2011-05-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
368
369         Reviewed by Simon Hausmann.
370
371         WebKit2: Enable serializing of data types needed for cross-process accelerated compositing
372         https://bugs.webkit.org/show_bug.cgi?id=61694
373
374         Added a public TimingFunction::type() method.
375
376         No new functionality, so no new tests.
377
378         * platform/animation/TimingFunction.h:
379         (WebCore::TimingFunction::type):
380
381 2011-05-30  Noam Rosenthal  <noam.rosenthal@nokia.com>
382
383         BUILD FIX for r87697 on Windows/Symbian
384
385         For now enabling TextureMapper for Mac/Linux only.
386
387         * WebCore.pri:
388
389 2011-05-30  David Kilzer  <ddkilzer@apple.com>
390
391         BUILD FIX for r87692 with !ENABLE(FULLSCREEN_API)
392
393         * dom/EventDispatcher.cpp:
394         (WebCore::EventDispatcher::determineDispatchBehavior): Mark
395         shadowRoot as an unused parameter with !ENABLE(FULLSCREEN_API).
396
397 2011-05-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
398
399         Reviewed by Andreas Kling.
400
401         [Texmap][Qt] Enable TextureMapper by default
402         https://bugs.webkit.org/show_bug.cgi?id=61740
403
404         Make CONFIG+=texmap an opt-out instead of an opt-in.
405
406         No new functionality so no new tests.
407
408         * WebCore.pri:
409
410 2011-05-30  Martin Robinson  <mrobinson@igalia.com>
411
412         Reviewed by Xan Lopez.
413
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
416
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
419         may now be null.
420
421         No new tests. This change should cause fast/css/font-face-zero-hash-key.html
422         to stop crashing.
423
424         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
425         (WebCore::FontPlatformData::FontPlatformData): Do a null check before accessing
426         m_scaledFont.
427
428 2011-05-30  Noam Rosenthal  <noam.rosenthal@nokia.com>
429
430         Reviewed by Kenneth Rohde Christiansen.
431
432         [Texmap][Qt] Disable accelerated plugins/media until they're working.
433         https://bugs.webkit.org/show_bug.cgi?id=61687
434
435         Until this works properly, we should indicate that our media implementation
436         in texture mapper doesn't support accelerated compositing.
437
438         This makes LayoutTests/compositing/video/* work again.
439
440         * platform/graphics/qt/MediaPlayerPrivateQt.h:
441         (WebCore::MediaPlayerPrivateQt::supportsAcceleratedRendering):
442         (WebCore::MediaPlayerPrivateQt::platformLayer):
443
444 2011-05-30  Mikhail Naganov  <mnaganov@chromium.org>
445
446         Reviewed by Adam Barth.
447
448         [Chromium] Fix regression after r87628.
449         https://bugs.webkit.org/show_bug.cgi?id=61733
450
451         Having r87628 in place, Chrome reliability bot crashes in
452         WebCore::HTMLLinkElement::onloadTimerFired.
453
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
461
462         * html/HTMLLinkElement.cpp:
463         (WebCore::HTMLLinkElement::notifyFinished):
464
465 2011-05-30  Jer Noble  <jer.noble@apple.com>
466
467         Reviewed by Darin Adler and Simon Fraser.
468
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
472
473         May be some good way to test this later. No immediate idea about the best way.
474
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.
482
483         * dom/EventDispatcher.cpp:
484         (WebCore::EventDispatcher::determineDispatchBehavior): Restrict events to the
485         shadow DOM when showing a full screen video.
486
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.
497
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.
515
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
531         needed.
532         (WebCore::MediaControlRootElement::hideFullscreenControlsTimerFired): Hide if the conditions
533         are met.
534         (WebCore::MediaControlRootElement::stopHideFullscreenControlsTimer): Stop the timer.
535
536         * html/shadow/MediaControlRootElement.h: Added new functions and data members.
537
538
539 2011-05-30  Gavin Peters  <gavinp@chromium.org>
540
541         Reviewed by Adam Barth.
542
543         prevent HTMLLinkElement from watching multiple CachedResources
544         https://bugs.webkit.org/show_bug.cgi?id=61686
545
546         If we modify an existing link element, stop listening to the previous
547         cached resource, to prevent double notifications (which crash).
548
549         Test: fast/dom/HTMLLinkElement/prefetch-too-many-clients.html
550
551         * html/HTMLLinkElement.cpp:
552         (WebCore::HTMLLinkElement::process):
553
554 2011-05-30  Peter Varga  <pvarga@webkit.org>
555
556         Unreviewed build fix.
557
558         [Qt][V8] Fix debug build.
559
560         No new tests needed.
561
562         * css/CSSStyleDeclaration.cpp: Add missing header.
563         * dom/Text.cpp: Ditto.
564         * rendering/InlineTextBox.cpp: Ditto.
565
566 2011-05-30  Sheriff Bot  <webkit.review.bot@gmail.com>
567
568         Unreviewed, rolling out r87683.
569         http://trac.webkit.org/changeset/87683
570         https://bugs.webkit.org/show_bug.cgi?id=61729
571
572         Breaks inspector tests on Chromium (Requested by apavlov on
573         #webkit).
574
575         * inspector/front-end/StylesSidebarPane.js:
576         (WebInspector.StylesSidebarPane.prototype.update):
577
578 2011-05-25  Alexander Pavlov  <apavlov@chromium.org>
579
580         Reviewed by Yury Semikhatsky.
581
582         Web Inspector: node selection is slow in the Elements panel.
583         https://bugs.webkit.org/show_bug.cgi?id=60813
584
585         Schedule full style updates rather than request all node styles from the backend up front.
586
587         * inspector/front-end/StylesSidebarPane.js:
588         (WebInspector.StylesSidebarPane.prototype.update.reloadAllStyles):
589         (WebInspector.StylesSidebarPane.prototype.update):
590
591 2011-05-30  Andrey Kosyakov  <caseq@chromium.org>
592
593         Reviewed by Pavel Feldman.
594
595         Web Inspector: do not issue frontendReused for reload or navigation.
596         https://bugs.webkit.org/show_bug.cgi?id=61192
597
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)
602
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):
625
626 2011-05-30  Ryan Sleevi  <rsleevi@chromium.org>
627
628         Reviewed by Darin Adler.
629
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
632
633         Test: svg/filters/feConvolveFilter-y-bounds.svg
634
635         * platform/graphics/filters/FEConvolveMatrix.cpp:
636         (WebCore::FEConvolveMatrix::getPixelValue):
637
638 2011-05-30  Nate Chapin  <japhet@chromium.org>
639
640         Reviewed by Antti Koivisto.
641
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
645
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):
657
658 2011-05-30  Sheriff Bot  <webkit.review.bot@gmail.com>
659
660         Unreviewed, rolling out r87618.
661         http://trac.webkit.org/changeset/87618
662         https://bugs.webkit.org/show_bug.cgi?id=61720
663
664         Causes BrowserFocusTest.FocusOnReload to fail (Requested by
665         abarth|gardener on #webkit).
666
667         * html/HTMLLinkElement.cpp:
668         (WebCore::HTMLLinkElement::process):
669
670 2011-05-29  Yuta Kitamura  <yutak@chromium.org>
671
672         Reviewed by Kent Tamura.
673
674         WebSocket closing handshake
675         https://bugs.webkit.org/show_bug.cgi?id=35721
676
677         Implement WebSocket closing handshake based on Ian Hickson's
678         WebSocket protocol draft 76.
679
680         Tests: http/tests/websocket/tests/client-close.html
681                http/tests/websocket/tests/server-close.html
682
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)
695         to didClose().
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):
725         Ditto.
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
733         specification).
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:
745
746 2011-05-29  Adam Barth  <abarth@webkit.org>
747
748         Attempt to fix build by implementing pure virtual function.
749
750         * html/shadow/MediaControlRootElementChromium.cpp:
751         (WebCore::MediaControlRootElementChromium::shouldHideControls):
752         * html/shadow/MediaControlRootElementChromium.h:
753
754 2011-05-29  Brian Weinstein  <bweinstein@apple.com>
755
756         Reviewed by Darin Adler.
757
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>
761         
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.
764         
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.
767
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
772             to play.
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:
790
791 2011-05-29  Jer Noble  <jer.noble@apple.com>
792
793         Reviewed by Simon Fraser.
794
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
797
798         Tests: fullscreen/full-screen-iframe-zIndex.html
799
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
804         sibling elements.
805
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.
808
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.
824         * dom/Document.cpp:
825         (WebCore::Document::setContainsFullScreenElementRecursively): Recurse up every element
826             instead of just the iframe elements.
827         (WebCore::Document::webkitWillEnterFullScreenForElement): Ditto.
828         * dom/Element.cpp:
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.
833         * dom/Element.h:
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:
842
843 2011-05-29  Dan Bernstein  <mitz@apple.com>
844
845         Reviewed by Darin Adler.
846
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
849
850         * dom/Document.cpp:
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.
855         * dom/Element.h:
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.
868
869 2011-05-29  Darin Adler  <darin@apple.com>
870
871         Reviewed by Kevin Decker.
872
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
875
876         We need to come up with a way to regression-test these changes. Nothing at the moment.
877
878         The bug is that we removed calls to preventDefault, but we still do need to prevent
879         default handling of this event.
880
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.
893
894 2011-05-29  Andreas Kling  <kling@webkit.org>
895
896         Reviewed by Kenneth Rohde Christiansen.
897
898         Element: Micro-cleanup of scroll methods.
899         https://bugs.webkit.org/show_bug.cgi?id=61705
900
901         Do an early return without calculating element boundaries when asked
902         to scroll an element without a renderer().
903
904         * dom/Element.cpp:
905         (WebCore::Element::scrollIntoView):
906         (WebCore::Element::scrollIntoViewIfNeeded):
907         (WebCore::Element::scrollByUnits):
908
909 2011-05-29  Darin Adler  <darin@apple.com>
910
911         Reviewed by Dan Bernstein.
912
913         Fix assertion seen when entering full screen mode for standalone video
914         https://bugs.webkit.org/show_bug.cgi?id=61708
915
916         We don't currently have a way to make a regression test for this.
917
918         * dom/Document.cpp:
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.
922
923 2011-05-27  Andreas Kling  <kling@webkit.org>
924
925         Reviewed by James Robinson.
926
927         [Qt] Add area check to ImageBufferData::getImageData()
928         https://bugs.webkit.org/show_bug.cgi?id=61375
929
930         No change in behavior, just a sanity check.
931
932         * platform/graphics/qt/ImageBufferQt.cpp:
933         (WebCore::getImageData):
934
935 2011-05-29  Beth Dakin  <bdakin@apple.com>
936
937         Reviewed by Darin Adler.
938
939         https://bugs.webkit.org/show_bug.cgi?id=61700
940         Need WebKit2 API to get the size of the render tree
941         -and corresponding-
942         <rdar://problem/9512733>
943
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 
946         WebKit.
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):
957
958 2011-05-29  Sheriff Bot  <webkit.review.bot@gmail.com>
959
960         Unreviewed, rolling out r87566.
961         http://trac.webkit.org/changeset/87566
962         https://bugs.webkit.org/show_bug.cgi?id=61702
963
964         It made all tests assert on Qt in debug mode (Requested by
965         Ossy_weekend on #webkit).
966
967         * WebCore.exp.in:
968         * bindings/ScriptControllerBase.cpp:
969         (WebCore::ScriptController::executeIfJavaScriptURL):
970         * dom/Document.cpp:
971         (WebCore::Document::Document):
972         (WebCore::Document::suggestedMIMEType):
973         (WebCore::Document::lastModified):
974         (WebCore::Document::initSecurityContext):
975         (WebCore::Document::updateURLForPushOrReplaceState):
976         * dom/Document.h:
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):
985
986 2011-05-28  Steve Falkenburg  <sfalken@apple.com>
987
988         Reviewed by Dan Bernstein.
989
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>
993
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.
996
997         Not testable due to lack of global history infrastructure in DRT.
998
999         * loader/FrameLoader.cpp:
1000         (WebCore::FrameLoader::transitionToCommitted):
1001
1002 2011-05-28  Alexey Proskuryakov  <ap@apple.com>
1003
1004         Suggested by Simon Fraser.
1005
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>
1009
1010         * loader/ImageLoader.cpp: (WebCore::ImageLoader::notifyFinished): There was no need to use
1011         ASSERT_UNUSED here.
1012
1013 2011-05-28  Alexey Proskuryakov  <ap@apple.com>
1014
1015         Reviewed by Geoff Garen.
1016
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>
1020
1021         Test: fast/dom/gc-image-element-2.html
1022
1023         Manually verified that tests from bug 59604 and from bug 40926 still pass.
1024
1025         The problem here was that HTMLImageElement::hasPendingActivity() could return false when
1026         a load (or error) event was still expected to fire.
1027
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.
1035
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.
1039
1040         * html/HTMLImageElement.cpp: Moved hasPendingActivity() to header, since it's just a single
1041         function call now.
1042
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
1046         an event to fire.
1047
1048         * html/HTMLLinkElement.cpp: (WebCore::HTMLLinkElement::onloadTimerFired): Again, don't do
1049         anything on cancellation.
1050
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.
1058
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.
1062
1063         * dom/XMLDocumentParser.cpp: (WebCore::XMLDocumentParser::notifyFinished): Another place to
1064         handle cancellation.
1065
1066 2011-05-28  Adam Barth  <abarth@webkit.org>
1067
1068         Reviewed by Alexey Proskuryakov.
1069
1070         Audit all uses of KURL::prettyURL
1071         https://bugs.webkit.org/show_bug.cgi?id=61201
1072
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.
1079
1080         * WebCore.exp.in:
1081         * page/Location.cpp:
1082         (WebCore::Location::href):
1083         (WebCore::Location::toString):
1084         * platform/KURL.cpp:
1085         (WebCore::KURL::deprecatedString):
1086         * platform/KURL.h:
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):
1094
1095 2011-05-28  Jer Noble  <jer.noble@apple.com>
1096
1097         Reviewed by Maciej Stachowiak.
1098
1099         Mouse clicks propagate outside full-screen media controls.
1100         https://bugs.webkit.org/show_bug.cgi?id=61689
1101
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().
1108
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:
1127
1128 2011-05-28  Gavin Peters  <gavinp@chromium.org>
1129
1130         Reviewed by Adam Barth.
1131
1132         prevent HTMLLinkElement from watching multiple CachedResources
1133         https://bugs.webkit.org/show_bug.cgi?id=61686
1134
1135         If we modify an existing link element, stop listening to the previous
1136         cached resource, to prevent double notifications (which crash).
1137
1138         Test: fast/dom/HTMLLinkElement/prefetch-too-many-clients.html
1139
1140         * html/HTMLLinkElement.cpp:
1141         (WebCore::HTMLLinkElement::process):
1142
1143 2011-05-28  Tonis Tiigi  <tonistiigi@gmail.com>
1144
1145         Reviewed by Pavel Feldman.
1146
1147         Web Inspector: there is a problem with computed style properties with wrong values
1148         https://bugs.webkit.org/show_bug.cgi?id=60535
1149
1150         * inspector/front-end/StylesSidebarPane.js:
1151         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
1152         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
1153
1154 2011-05-26  Antonio Gomes  <agomes@rim.com>
1155
1156         Reviewed by Andreas Kling.
1157
1158         Logic error in WebCore/Page/SpatialNavigation.cpp::areRectsPartiallyAligned
1159         https://bugs.webkit.org/show_bug.cgi?id=61606
1160
1161         Removed duplicated statement within if condition.
1162
1163         No new tests. Obvious clean up patch.
1164
1165         * page/SpatialNavigation.cpp:
1166         (WebCore::areRectsPartiallyAligned):
1167
1168 2011-05-27  Simon Fraser  <simon.fraser@apple.com>
1169
1170         Reviewed by Dan Bernstein.
1171
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>
1175
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().
1179
1180         * platform/graphics/cg/ImageCG.cpp:
1181         (WebCore::BitmapImage::getFirstCGImageRefOfSize):
1182         (WebCore::BitmapImage::getCGImageArray):
1183
1184 2011-05-27  Jochen Eisinger  <jochen@chromium.org>
1185
1186         Reviewed by Adam Barth.
1187
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
1192
1193         Test: platform/chromium/permissionclient/storage-permission.html
1194
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:
1207
1208 2011-05-27  Nate Chapin  <japhet@chromium.org>
1209
1210         Reviewed by Jian Li.
1211
1212         Keep a reference to BlobResourceHandle before calling doNotifyFinish()
1213         asynchronously to ensure it's still safe in the main thread.
1214
1215         https://bugs.webkit.org/show_bug.cgi?id=61669
1216
1217         I triggered this crash in fast/files/file-reader-abort.html during a
1218         refactor that changed timings slightly.
1219
1220         * platform/network/BlobResourceHandle.cpp:
1221         (WebCore::doNotifyFinish):
1222         (WebCore::BlobResourceHandle::notifyFinish):
1223         * platform/network/BlobResourceHandle.h:
1224         (WebCore::BlobResourceHandle::aborted):
1225
1226 2011-05-27  Stephanie Lewis  <slewis@apple.com>
1227
1228         Unreviewed.
1229
1230         Fix a typo in the order_file flag.
1231
1232         * Configurations/Base.xcconfig:
1233
1234 2011-05-27  Anders Carlsson  <andersca@apple.com>
1235
1236         Reviewed by Sam Weinig.
1237
1238         Always use the default localization strategy
1239         https://bugs.webkit.org/show_bug.cgi?id=61670
1240         <rdar://problem/9516130>
1241
1242         Always use the default localization strategy when there's no platform strategy.
1243
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):
1375
1376 2011-05-27  Brady Eidson  <beidson@apple.com>
1377
1378         Reviewed by Darin Adler.
1379
1380         First swipe at resolving <rdar://problem/9125145> and https://bugs.webkit.org/show_bug.cgi?id=61494
1381         
1382         Make the Document be intelligent about returning its DocumentLoader, including the possibility that
1383         the DocumentLoader will be null.
1384
1385         No new tests. No change in behavior.
1386
1387         Instead of storing the DocumentLoader at construction and never changing it,
1388         always calculate it based on the FrameLoader's current DocumentLoader:
1389         * dom/Document.cpp:
1390         (WebCore::Document::Document):
1391         (WebCore::Document::suggestedMIMEType):
1392         (WebCore::Document::lastModified):
1393         (WebCore::Document::initSecurityContext):
1394         (WebCore::Document::updateURLForPushOrReplaceState):
1395         (WebCore::Document::loader):
1396         * dom/Document.h:
1397
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):
1407
1408         * WebCore.exp.in:
1409
1410 2011-05-27  Jer Noble  <jer.noble@apple.com>
1411
1412         Reviewed by Maciej Stachowiak.
1413
1414         30 second rewind button obscured in fullscreen controller
1415         https://bugs.webkit.org/show_bug.cgi?id=61663
1416
1417         If reset() is called while in full-screen mode, make sure to show and hide
1418         the correct controls for that mode.
1419
1420         * html/shadow/MediaControlRootElement.cpp:
1421         (WebCore::MediaControlRootElement::reset):
1422
1423 2011-05-27  James Robinson  <jamesr@chromium.org>
1424
1425         Reviewed by Simon Fraser.
1426
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
1429
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.
1434
1435         Test: compositing/iframes/resizer.html
1436
1437         * rendering/RenderLayerCompositor.cpp:
1438         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1439
1440 2011-05-27  Adam Barth  <abarth@webkit.org>
1441
1442         Reviewed by Eric Seidel.
1443
1444         HTMLVideoElement::currentSrc() should return a KURL
1445         https://bugs.webkit.org/show_bug.cgi?id=61578
1446
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!
1449
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!
1452
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
1467               already absolute.
1468
1469 2011-05-27  Mikhail Naganov  <mnaganov@chromium.org>
1470
1471         Reviewed by Pavel Feldman.
1472
1473         Web Inspector: [Chromium] Add support for showing URL of DOMWindow in heap profiles.
1474         https://bugs.webkit.org/show_bug.cgi?id=61177
1475
1476         * inspector/front-end/HeapSnapshot.js:
1477         (WebInspector.HeapSnapshotNode.prototype.get className):
1478
1479 2011-05-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1480
1481         Rubber-stamped by Rob Buis.
1482
1483         embedded SVG object doesn't scale right
1484         https://bugs.webkit.org/show_bug.cgi?id=10526
1485
1486         Fixes crash in svg/custom/immutable-properties.html, seen on the bots.
1487
1488         * svg/SVGLength.cpp:
1489         (WebCore::SVGLength::determineViewport): Oops forgot to merge-in a null check before landing.
1490
1491 2011-05-27  Nikolas Zimmermann  <nzimmermann@rim.com>
1492
1493         Reviewed by Rob Buis.
1494
1495         embedded SVG object doesn't scale right
1496         https://bugs.webkit.org/show_bug.cgi?id=10526
1497
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
1500
1501         Incorrect handling of percentage values for width/height on embedded elements
1502         https://bugs.webkit.org/show_bug.cgi?id=14793
1503
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)
1506
1507         CSS 2.1: Support replaced elements with relative intrinsic sizes
1508         https://bugs.webkit.org/show_bug.cgai?id=15849 (partially fixed)
1509
1510         SVG embedded as <object> doesn't respect width/height attributes
1511         https://bugs.webkit.org/show_bug.cgi?id=34972
1512
1513         Explicit size of object tag ignored
1514         https://bugs.webkit.org/show_bug.cgi?id=37086
1515
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).
1519
1520         SVG 1.1 says:
1521         The 'width' attribute on the outermost svg element establishes the viewport's width, unless the following conditions are met:
1522         ...
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.
1526
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.)
1532
1533         Fixes dozens of long-standing bug reports. The number one integration issue when using SVG through <object> is resolved: "right sizing".
1534
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
1552
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:
1584
1585 2011-05-27  Michael Saboff  <msaboff@apple.com>
1586
1587         Reviewed by David Hyatt.
1588
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
1591
1592         Change the platformIsEqual to just compare the m_font members if
1593         either is not null.
1594
1595         No tests added - functionality unchanged, fixing memory abandonment.
1596
1597         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1598         (WebCore::FontPlatformData::platformIsEqual):
1599
1600 2011-05-25  Martin Robinson  <mrobinson@igalia.com>
1601
1602         Reviewed by Dirk Schulze.
1603
1604         [GTK][Cairo] Twitter rendering breaks
1605         https://bugs.webkit.org/show_bug.cgi?id=60917
1606
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.
1610
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.
1614
1615         Test: platform/gtk/fonts/zero-pixel-sized-fonts.html
1616
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
1628         needs to be read.
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.
1636
1637 2011-05-27  David Levin  <levin@chromium.org>
1638
1639         Reviewed by Darin Fisher.
1640
1641         Need a callback for when the preferred rendered size may have changed.
1642         https://bugs.webkit.org/show_bug.cgi?id=61309
1643
1644         No new tests needed since no new functionality is exposed.
1645
1646         * page/Chrome.cpp:
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.
1653
1654 2011-05-27  Stephanie Lewis  <slewis@apple.com>
1655
1656         Rubber Stamped by Adam Roben.
1657
1658         Update Order Files.  Use -order_file flag since it can order more of the binary.
1659
1660         * Configurations/Base.xcconfig:
1661         * WebCore.order:
1662
1663 2011-05-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1664
1665         Unreviewed, rolling out r87464.
1666         http://trac.webkit.org/changeset/87464
1667         https://bugs.webkit.org/show_bug.cgi?id=61643
1668
1669         client-close/server-close tests are flaky on Chromium Mac and
1670         Windows (Requested by aklein on #webkit).
1671
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:
1706
1707 2011-05-27  Rob Buis  <rbuis@rim.com>
1708
1709         Reviewed by Nikolas Zimmermann.
1710
1711         https://bugs.webkit.org/show_bug.cgi?id=19995
1712         hixie.ch : anchor Link fails with fragment identifiers inside SVG fragments.
1713
1714         Only allow links to animation elements within the document.
1715
1716         Test: svg/hixie/links/003.xml
1717
1718         * svg/SVGAElement.cpp:
1719         (WebCore::SVGAElement::defaultEventHandler):
1720
1721 2011-05-27  Andreas Kling  <kling@webkit.org>
1722
1723         Reviewed by Benjamin Poulain.
1724
1725         Update RGBA color serialization to match HTML5.
1726         https://bugs.webkit.org/show_bug.cgi?id=61449
1727
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.)
1730
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.)
1734
1735         * platform/graphics/Color.cpp:
1736         (WebCore::Color::serialized):
1737
1738 2011-05-27  Hans Wennborg  <hans@chromium.org>
1739
1740         Reviewed by Tony Gentilcore.
1741
1742         IndexedDB: Support mutating cursors on top of LevelDB
1743         https://bugs.webkit.org/show_bug.cgi?id=61615
1744
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.
1747
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.
1751
1752         Test: storage/indexeddb/mutating-cursor.html
1753               storage/indexeddb/mozilla/cursor-mutation-objectstore-only.html (existing)
1754
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):
1776
1777 2011-05-27  Sujin Park  <sujjin.park@gmail.com>
1778
1779         Unreviewed, buildfix if --no-javascript-debugger.
1780
1781         Regression(R84125): Broke GTK build
1782         https://bugs.webkit.org/show_bug.cgi?id=60698
1783
1784         No new tests since this doesn't change any behavior.
1785
1786         * inspector/WorkerInspectorController.h:
1787
1788 2011-05-26  Yael Aharon  <yael.aharon@nokia.com>
1789
1790         Reviewed by Tony Chang.
1791
1792         webkit should implement the dropzone attribute
1793         https://bugs.webkit.org/show_bug.cgi?id=58210
1794
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.
1800
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
1805
1806         * dom/Clipboard.cpp:
1807         (WebCore::Clipboard::hasFileOfType):
1808         (WebCore::Clipboard::hasStringOfType):
1809         (WebCore::convertDropZoneOperationToDragOperation):
1810         (WebCore::convertDragOperationToDropZoneOperation):
1811         (WebCore::Clipboard::processDropZoneKeyword):
1812         * dom/Clipboard.h:
1813         * html/HTMLAttributeNames.in:
1814         * html/HTMLElement.idl:
1815         * page/EventHandler.cpp:
1816         (WebCore::EventHandler::findDropZone):
1817         (WebCore::EventHandler::updateDragAndDrop):
1818         * page/EventHandler.h:
1819
1820 2011-05-27  Patrick Gansterer  <paroga@webkit.org>
1821
1822         Unreviewed WinCE build fix for r87467.
1823
1824         * page/wince/FrameWinCE.cpp:
1825
1826 2011-05-26  Hans Wennborg  <hans@chromium.org>
1827
1828         Reviewed by Tony Gentilcore.
1829
1830         IndexedDB: Support NO_DUPLICATE cursors on LevelDB back-end
1831         https://bugs.webkit.org/show_bug.cgi?id=61517
1832
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
1836
1837         This is tested by storage/indexeddb/mozilla/indexes.html
1838
1839         * storage/IDBLevelDBBackingStore.cpp:
1840         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
1841         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
1842         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
1843
1844 2011-05-26  Hans Wennborg  <hans@chromium.org>
1845
1846         Reviewed by Tony Gentilcore.
1847
1848         LevelDB: turn on paranoid checks and verify checksums, log errors
1849         https://bugs.webkit.org/show_bug.cgi?id=61516
1850
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.
1854
1855         No new functionality, no new tests.
1856
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):
1869
1870 2011-05-27  James Robinson  <jamesr@chromium.org>
1871
1872         Reviewed by Adam Barth.
1873
1874         CachedResourceLoader stores data: urls in validated URL set
1875         https://bugs.webkit.org/show_bug.cgi?id=61604
1876
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
1879         memory.
1880
1881         * loader/cache/CachedResourceLoader.cpp:
1882         (WebCore::CachedResourceLoader::revalidateResource):
1883         (WebCore::CachedResourceLoader::loadResource):
1884
1885 2011-05-23  MORITA Hajime  <morrita@google.com>
1886
1887         Reviewed by Tony Chang.
1888
1889         [Refactoring] DocumentMarker should be carried around as a pointer, not value.
1890         https://bugs.webkit.org/show_bug.cgi?id=61262
1891
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.
1898         
1899         No new tests. No behavior change.
1900
1901         * WebCore.exp.in:
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):
1931
1932 2011-05-26  MORITA Hajime  <morrita@google.com>
1933
1934         Reviewed by Kent Tamura.
1935
1936         WebCore::HTMLSummaryElement::isMainSummary ReadAV@NULL
1937         https://bugs.webkit.org/show_bug.cgi?id=61511
1938
1939         Removed Unnecessary wrong cast to Elmement, which can be non-Element.
1940
1941         Test: fast/html/details-summary-document-child.html
1942
1943         * html/HTMLSummaryElement.cpp:
1944         (WebCore::HTMLSummaryElement::detailsElement):
1945
1946 2011-05-26  Adam Barth  <abarth@webkit.org>
1947
1948         Reviewed by Ryosuke Niwa.
1949
1950         FrameLoader cannot be null
1951         https://bugs.webkit.org/show_bug.cgi?id=61609
1952
1953         This code has a bunch of cargo-cult null checking.
1954
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):
1962
1963 2011-05-26  Shane Stephens  <shanestephens@google.com>
1964
1965         Reviewed by James Robinson.
1966
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
1969
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.
1974
1975         Test: transforms/2d/set-transform-and-top.html
1976
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.
1983
1984 2011-05-26  Luke Macpherson   <macpherson@chromium.org>
1985
1986         Reviewed by Eric Seidel.
1987
1988         Implement webkit margin collapse CSS properties in CSSStyleApplyProperty
1989         https://bugs.webkit.org/show_bug.cgi?id=61589
1990
1991         No new tests as no new functionality added.
1992
1993         * css/CSSStyleApplyProperty.cpp:
1994         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1995         Add handlers for:
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.
2004
2005 2011-05-26  Adam Barth  <abarth@webkit.org>
2006
2007         Reviewed by Eric Seidel.
2008
2009         Support cross-origin property for images
2010         https://bugs.webkit.org/show_bug.cgi?id=61015
2011
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.
2015
2016         While I was editing this code, I couldn't resist a couple touch-up
2017         changes.
2018
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
2022
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:
2037
2038 2011-05-26  Mihai Parparita  <mihaip@chromium.org>
2039
2040         Reviewed by Adam Barth.
2041
2042         Fix worldID and destinationDomain argument names
2043         https://bugs.webkit.org/show_bug.cgi?id=61571
2044
2045         As part of working on r87423, I noticed a couple of inconsistencies in
2046         argument names:
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).
2052
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:
2059
2060 2011-05-26  Emil A Eklund  <eae@chromium.org>
2061
2062         Reviewed by Eric Seidel.
2063
2064         Replace RenderLayer::x/y/width/height with location/size
2065         https://bugs.webkit.org/show_bug.cgi?id=61414
2066
2067         Covered by existing tests.
2068
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:
2089         (WebCore::write):
2090         (WebCore::writeLayers):
2091         (WebCore::externalRepresentation):
2092         * rendering/RenderView.cpp:
2093         (WebCore::RenderView::absoluteRects):
2094         (WebCore::RenderView::absoluteQuads):
2095
2096 2011-05-26  Annie Sullivan  <sullivan@chromium.org>
2097
2098         Reviewed by Ryosuke Niwa.
2099
2100         Delete table in contentEditable/designMode produces odd contents
2101         https://bugs.webkit.org/show_bug.cgi?id=57148
2102
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
2107         the list is for.
2108
2109         Test: editing/deleting/delete-last-char-in-table.html
2110
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.
2116
2117 2011-05-26  Yuta Kitamura  <yutak@chromium.org>
2118
2119         Reviewed by Kent Tamura.
2120
2121         WebSocket closing handshake
2122         https://bugs.webkit.org/show_bug.cgi?id=35721
2123
2124         Implement WebSocket closing handshake based on Ian Hickson's
2125         WebSocket protocol draft 76.
2126
2127         Tests: http/tests/websocket/tests/client-close.html
2128                http/tests/websocket/tests/server-close.html
2129
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)
2142         to didClose().
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):
2172         Ditto.
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
2180         specification).
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:
2192
2193 2011-05-26  David Levin  <levin@chromium.org>
2194
2195         Reviewed by Dmitry Titov.
2196
2197         WebKit's font notification has problems when the WebKit main thread != UI thread.
2198         https://bugs.webkit.org/show_bug.cgi?id=61391
2199
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.
2203
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.
2210
2211 2011-05-26  Stephanie Lewis  <slewis@apple.com>
2212
2213         Reviewed by Geoff Garen.
2214
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. 
2220
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.
2225
2226         No new functionality so no new tests.
2227
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:
2255
2256 2011-05-26  James Kozianski  <koz@chromium.org>
2257
2258         Reviewed by Eric Seidel.
2259
2260         Implement a whitelist for registerProtocolHandler
2261         https://bugs.webkit.org/show_bug.cgi?id=60322
2262
2263         * page/Navigator.cpp:
2264         (WebCore::initProtocolHandlerWhitelist):
2265         (WebCore::isProtocolWhitelisted):
2266         (WebCore::verifyProtocolHandlerScheme):
2267
2268 2011-05-26  Annie Sullivan  <sullivan@chromium.org>
2269
2270         Reviewed by Ryosuke Niwa.
2271
2272         [debug feature] CSSStyleDeclaration should have a way to print cssText
2273         https://bugs.webkit.org/show_bug.cgi?id=61570
2274
2275         Adds a method to print the cssText to stderr for debugging.
2276
2277         * css/CSSStyleDeclaration.cpp:
2278         (WebCore::CSSStyleDeclaration::showStyle): New method to print cssText to stderr
2279         * css/CSSStyleDeclaration.h: New method declaration
2280
2281 2011-05-26  Syed Idris Shah  <syed.idris-shah@nokia.com>
2282
2283         Reviewed by Andreas Kling.
2284
2285         [Qt] fast/canvas/webgl/gl-uniform-arrays.html failing for Qt on Linux
2286         https://bugs.webkit.org/show_bug.cgi?id=60377 
2287
2288         LayoutTests/fast/canvas/webgl/gl-uniform-arrays.html
2289
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. 
2293
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.
2296
2297 2011-05-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2298
2299         Unreviewed, rolling out r87444.
2300         http://trac.webkit.org/changeset/87444
2301         https://bugs.webkit.org/show_bug.cgi?id=61582
2302
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).
2306
2307         * page/Chrome.cpp:
2308         * page/Chrome.h:
2309         * page/ChromeClient.h:
2310         * page/FrameView.cpp:
2311         (WebCore::FrameView::setContentsSize):
2312         * page/FrameView.h:
2313
2314 2011-05-26  David Levin  <levin@chromium.org>
2315
2316         Reviewed by Darin Fisher.
2317
2318         Need a callback for when the preferred rendered size changed.
2319         https://bugs.webkit.org/show_bug.cgi?id=61309
2320
2321         No new tests needed since no new functionality is exposed.
2322
2323         * page/Chrome.cpp:
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.
2330
2331 2011-05-25  Levi Weintraub  <leviw@chromium.org>
2332
2333         Reviewed by Eric Seidel.
2334
2335         Switch controlClipRect to use IntPoint
2336         https://bugs.webkit.org/show_bug.cgi?id=60806
2337
2338         Switching controlClipRect to take an IntPoint representing the
2339         offset to be added instead of a pair of ints.
2340
2341         No new tests as this is just refactoring.
2342
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:
2363
2364 2011-05-25  Levi Weintraub  <leviw@chromium.org>
2365
2366         Reviewed by Eric Seidel.
2367
2368         Switch controlClipRect to use IntPoint
2369         https://bugs.webkit.org/show_bug.cgi?id=60806
2370
2371         Switching controlClipRect to take an IntPoint representing the
2372         offset to be added instead of a pair of ints.
2373
2374         No new tests as this is just refactoring.
2375
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:
2396
2397 2011-05-26  Jeff Miller  <jeffm@apple.com>
2398
2399         Reviewed by Steve Falkenburg.
2400
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>
2404
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.
2407
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.
2411
2412 2011-05-26  James Robinson  <jamesr@chromium.org>
2413
2414         Reviewed by Darin Fisher.
2415
2416         [skia] Add area check to ImageBufferData::getImageData
2417         https://bugs.webkit.org/show_bug.cgi?id=61375
2418
2419         No change in behavior, just a sanity check.
2420
2421         * platform/graphics/skia/ImageBufferSkia.cpp:
2422         (WebCore::getImageData):
2423
2424 2011-05-26  Levi Weintraub  <leviw@chromium.org>
2425
2426         Reviewed by Eric Seidel.
2427
2428         Switch positionOverflowControls to IntSize
2429         https://bugs.webkit.org/show_bug.cgi?id=61493
2430
2431         Switching positionOverflowControls to take a layerOffset IntSize
2432         as opposed to a pair of ints.
2433
2434         No new tests since this is just refactoring.
2435
2436         * rendering/RenderLayer.cpp:
2437         (WebCore::RenderLayer::updateLayerPositions):
2438         (WebCore::RenderLayer::positionOverflowControls):
2439         (WebCore::RenderLayer::paintOverflowControls):
2440         * rendering/RenderLayer.h:
2441
2442 2011-05-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2443
2444         Unreviewed, rolling out r87368.
2445         http://trac.webkit.org/changeset/87368
2446         https://bugs.webkit.org/show_bug.cgi?id=61564
2447
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).
2451
2452         * rendering/RenderObject.h:
2453         (WebCore::RenderObject::needsPositionedMovementLayout):
2454
2455 2011-05-02  Robert Hogan  <robert@webkit.org>
2456
2457         Reviewed by Adam Roben.
2458
2459         [Qt] Allow popup windows from plugins when initiated by a user gesture
2460
2461         https://bugs.webkit.org/show_bug.cgi?id=41292
2462
2463         If the event is from a user gesture and the plugin doesn't support
2464         NPN_PushPopupsEnabledState() and NPN_PopPopupsEnabledState(), allow popups.
2465
2466         * plugins/qt/PluginViewQt.cpp:
2467         (WebCore::PluginView::dispatchNPEvent):
2468
2469 2011-05-26  Leandro Gracia Gil  <leandrogracia@chromium.org>
2470
2471         Reviewed by Dmitry Titov.
2472
2473         [V8] Add missing compile guards for WebWorkers in WebCore.
2474         https://bugs.webkit.org/show_bug.cgi?id=61535
2475
2476         No new tests - refactoring only.
2477
2478         * bindings/v8/V8AbstractEventListener.cpp:
2479         (WebCore::V8AbstractEventListener::invokeEventHandler):
2480         * bindings/v8/V8DOMWrapper.cpp:
2481         (WebCore::V8DOMWrapper::instantiateV8Object):
2482
2483 2011-05-26  Mihai Parparita  <mihaip@chromium.org>
2484
2485         Reviewed by Adam Barth.
2486
2487         Support cross-origin XMLHttpRequest in isolated worlds
2488         https://bugs.webkit.org/show_bug.cgi?id=59843
2489
2490         Allows isolated worlds to be associated with a different SecurityOrigin
2491         (exposed as a setIsolatedWorldSecurityOrigin function in
2492         ScriptController).
2493
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
2498         Document's.
2499
2500         Test: http/tests/security/isolatedWorld/cross-origin-xhr.html
2501
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:
2535
2536 2011-05-26  Michael Nordman  <michaeln@google.com>
2537
2538         Reviewed by Darin Fisher.
2539
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
2545
2546         New new functionality, no tests.
2547
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):
2554
2555 2011-05-25  Jer Noble  <jer.noble@apple.com>
2556
2557         Reviewed by Maciej Stachowiak.
2558
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
2561
2562         No new tests, as DRT does not currently animate the full screen transition.
2563
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
2566         will be destroyed.
2567
2568         Also, add some sanity checks when accessing the full-screen renderer's layer backing.
2569
2570         * dom/Document.cpp:
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.
2578         * dom/Document.h:
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:
2583
2584 2011-05-26  Andreas Kling  <kling@webkit.org>
2585
2586         Reviewed by Geoffrey Garen.
2587
2588         Overload resolution in generated JSC bindings could be more efficient.
2589         https://bugs.webkit.org/show_bug.cgi?id=61544
2590
2591         Only fetch the arguments once, and not until they are needed (less work
2592         in the case of an early return.)
2593
2594         * bindings/scripts/CodeGeneratorJS.pm:
2595         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
2596         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2597
2598 2011-05-26  Adrienne Walker  <enne@google.com>
2599
2600         Reviewed by James Robinson.
2601
2602         [chromium] Be robust to empty viewports in the compositor
2603         https://bugs.webkit.org/show_bug.cgi?id=61545
2604
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
2609         good sanity check.
2610
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):
2618
2619 2011-05-26  Emil A Eklund  <eae@chromium.org>
2620
2621         Reviewed by Eric Seidel.
2622
2623         Change RenderObject to use FloatPoint::scale and FloatQuad::scale
2624         https://bugs.webkit.org/show_bug.cgi?id=61497
2625
2626         Covered by existing test.
2627
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):
2635
2636 2011-05-26  Alexis Menard  <alexis.menard@openbossa.org>
2637
2638         Unreviewed build fix for Qt and QuickTime backend.
2639
2640         r87328 added a new system interface, we need to add it too.
2641
2642         * platform/qt/WebCoreSystemInterface.h:
2643         * platform/qt/WebCoreSystemInterface.mm:
2644
2645 2011-05-26  Andrey Kosyakov  <caseq@chromium.org>
2646
2647         Unreviewed follow-up to r87395, added checks to avoid accessing undefined member for certain timeline events.
2648
2649         * inspector/front-end/TimelinePanel.js:
2650         (WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
2651         (WebInspector.TimelinePanel.FormattedRecord):
2652
2653 2011-05-25  Ryosuke Niwa  <rniwa@webkit.org>
2654
2655         Reviewed by Enrica Casucci.
2656
2657         WebKit duplicates styles from css rules on copy and paste
2658         https://bugs.webkit.org/show_bug.cgi?id=61466
2659
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.
2662
2663         Test: editing/pasteboard/style-from-rules.html
2664
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.
2684
2685 2011-05-26  Michael Schneider  <michschn@google.com>
2686
2687         Reviewed by Pavel Feldman.
2688
2689         WebInspector: Added API to access the timeline data in a inspector extension.
2690         https://bugs.webkit.org/show_bug.cgi?id=61098
2691
2692         * WebCore.gypi:
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:
2718
2719 2011-05-26  Andrey Kosyakov  <caseq@chromium.org>
2720
2721         Reviewed by Yury Semikhatsky.
2722
2723         Web Inspector: TimelinePanel should not modify input timeline data when processing timeline event
2724         https://bugs.webkit.org/show_bug.cgi?id=61529
2725
2726         Do not modify input timeline data when processing timeline event.
2727
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):
2735
2736 2011-05-26  Rob Buis  <rbuis@rim.com>
2737
2738         Reviewed by Dirk Schulze.
2739
2740         Dynamically created <animate> elements do not animate upon document insertion as they should
2741         https://bugs.webkit.org/show_bug.cgi?id=20028
2742
2743         Tests: svg/animations/animate-insert-begin.html
2744                svg/animations/animate-insert-no-begin.html
2745
2746         Move animation initializing and rescheduling to insertedIntoDocument. This way animate elements
2747         dynamicaly inserted into the document using js start as well.
2748
2749         * svg/animation/SVGSMILElement.cpp:
2750         (WebCore::SVGSMILElement::insertedIntoDocument):
2751         * svg/animation/SVGSMILElement.h:
2752
2753 2011-05-26  Andreas Kling  <kling@webkit.org>
2754
2755         Reviewed by Benjamin Poulain.
2756
2757         JSC DOM bindings: ExecState::argumentCount() is size_t, not int.
2758         https://bugs.webkit.org/show_bug.cgi?id=61530
2759
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):
2770
2771 2011-05-26  Simon Fraser  <simon.fraser@apple.com>
2772
2773         Reviewed by Adam Roben.
2774
2775         Some repeating linear gradients look wrong
2776         https://bugs.webkit.org/show_bug.cgi?id=61371
2777
2778         Test: fast/gradients/css3-repeating-linear-gradients2.html
2779         
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.
2785
2786         * css/CSSGradientValue.cpp:
2787         (WebCore::CSSGradientValue::addStops):
2788
2789 2011-05-26  Vsevolod Vlasov  <vsevik@chromium.org>
2790
2791         Reviewed by Yury Semikhatsky.
2792
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
2795
2796         * English.lproj/localizedStrings.js:
2797         * inspector/front-end/NetworkPanel.js:
2798         (WebInspector.NetworkPanel.prototype._createTable):
2799         (WebInspector.NetworkDataGridNode.prototype._refreshSizeCell):
2800
2801 2011-05-25  Simon Fraser  <simon.fraser@apple.com>
2802
2803         Reviewed by Dan Bernstein.
2804
2805         Always antialias borders, outlines and rules when scaling
2806         https://bugs.webkit.org/show_bug.cgi?id=61502
2807         
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.
2811         
2812         Fix by allowing antialiasing for collapsed table borders, column rules and span
2813         outlines when the context is scaled.
2814
2815         Test: fast/borders/border-antialiasing.html
2816
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):
2824
2825 2011-05-26  Vsevolod Vlasov  <vsevik@chromium.org>
2826
2827         Reviewed by Yury Semikhatsky.
2828
2829         Web Inspector: Use different SourceFrame instances for ResourcesPanel and NetworkPanel
2830         https://bugs.webkit.org/show_bug.cgi?id=59193
2831
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):
2881
2882 2011-05-26  Andreas Kling  <kling@webkit.org>
2883
2884         Reviewed by Darin Adler.
2885
2886         JSC DOM bindings: Use isUndefinedOrNull() instead of (isNull() || isUndefined()).
2887         https://bugs.webkit.org/show_bug.cgi?id=61472
2888
2889         * bindings/scripts/CodeGeneratorJS.pm:
2890         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
2891         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
2892         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2893
2894 2011-05-26  Keishi Hattori  <keishi@webkit.org>
2895
2896         Reviewed by Kent Tamura.
2897
2898         Add <input type=color> appearance.
2899         https://bugs.webkit.org/show_bug.cgi?id=61275
2900
2901         Test: fast/forms/color/input-appearance-color.html
2902
2903         * css/html.css:
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.
2917
2918 2011-05-26  Kent Tamura  <tkent@chromium.org>
2919
2920         Reviewed by Dimitri Glazkov.
2921
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
2925
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
2930         with the selection.
2931
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().
2938
2939         Test: fast/forms/input-number-blur-twice.html
2940
2941         * dom/Document.cpp:
2942         (WebCore::Document::setFocusedNode): Calls Node::beforeBlueEvent().
2943         * dom/Node.cpp:
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().
2961
2962 2011-05-25  Hans Wennborg  <hans@chromium.org>
2963
2964         Reviewed by Steve Block.
2965
2966         IndexedDB: Support LevelDB transactions.
2967         https://bugs.webkit.org/show_bug.cgi?id=61270
2968
2969         Introduce LevelDBTransaction, which implements in-memory transaction
2970         support on top of LevelDB, and hook this up for IndexedDB to use.
2971
2972         This is all covered by existing tests.
2973
2974         * CMakeLists.txt:
2975         * GNUmakefile.list.am:
2976         * WebCore.gypi:
2977         * WebCore.pro:
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:
3058         (WebCore::getInt):
3059         (WebCore::putInt):
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):
3094
3095 2011-05-26  Shane Stephens  <shanestephens@google.com>
3096
3097         Reviewed by James Robinson.
3098
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
3101
3102         Test: transforms/2d/set-transform-and-top.html
3103
3104         * rendering/RenderBlock.cpp:
3105         (WebCore::RenderBlock::simplifiedLayout):
3106
3107 2011-05-26  Igor Oliveira  <igor.oliveira@openbossa.org>
3108
3109         Reviewed by Andreas Kling.
3110
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
3113
3114         Checks if image has content before starting to drag.
3115
3116         * page/DragController.cpp:
3117         (WebCore::DragController::startDrag):
3118
3119 2011-05-26  Alok Priyadarshi  <alokp@chromium.org>
3120
3121         Reviewed by James Robinson.
3122
3123         [chromium] Cannot create stencil render-buffer for accelerated drawing on desktop GL
3124         https://bugs.webkit.org/show_bug.cgi?id=61444
3125
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.
3131
3132         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
3133         (WebCore::LayerTextureUpdaterSkPicture::deleteFrameBuffer):
3134         (WebCore::LayerTextureUpdaterSkPicture::createFrameBuffer):
3135
3136 2011-05-25  Jer Noble  <jer.noble@apple.com>
3137
3138         Reviewed by Dan Bernstein.
3139
3140         30 second rewind button dysfunctional viewing trailers fullscreen.
3141         https://bugs.webkit.org/show_bug.cgi?id=61505
3142
3143         Add support for painting MediaReturnToRealtimeButton, as well as hide and show
3144         the correct default video control buttons when entering full-screen mode.
3145
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.
3156
3157 2011-05-25  Luke Macpherson   <macpherson@chromium.org>
3158
3159         Reviewed by Dimitri Glazkov.
3160
3161         Implement various CSS font properties in CSSStyleApplyProperty.
3162         https://bugs.webkit.org/show_bug.cgi?id=60603
3163
3164         No new tests - refactoring only.
3165
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
3183
3184 2011-05-25  James Simonsen  <simonjam@chromium.org>
3185
3186         Reviewed by Adam Barth.
3187
3188         Add site-specific hack for zipcar.com with old versions of requirejs.
3189         https://bugs.webkit.org/show_bug.cgi?id=61321
3190
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).
3195
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.
3201
3202 2011-05-25  Andreas Kling  <kling@webkit.org>
3203
3204         Reviewed by David Levin.
3205
3206         Rebaseline run-bindings-tests.
3207         https://bugs.webkit.org/show_bug.cgi?id=61469
3208
3209         * bindings/scripts/test/JS/:
3210         * bindings/scripts/test/V8/:
3211
3212 2011-05-25  Levi Weintraub  <leviw@chromium.org>
3213
3214         Reviewed by Eric Seidel.
3215
3216         Switch itemBoundingBoxRect to use IntPoint
3217         https://bugs.webkit.org/show_bug.cgi?id=60789
3218
3219         Changing itemBoundingBoxRect to use an IntPoint representing the offset
3220         to be added tot he box rect instead of a pair of ints.
3221
3222         No new tests since this is just refactoring.
3223
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:
3235
3236 2011-05-24  MORITA Hajime  <morrita@google.com>
3237
3238         Reviewed by Dimitri Glazkov.
3239
3240         RenderText with empty text is not created inside ShadowContentElement 
3241         https://bugs.webkit.org/show_bug.cgi?id=61111        
3242
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.
3247         
3248         Tests: fast/html/details-replace-summary-child.html
3249                fast/html/details-replace-text.html
3250
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):
3259         * dom/Text.cpp:
3260         (WebCore::Text::rendererIsNeeded):
3261
3262 2011-05-25  Sailesh Agrawal  <sail@chromium.org>
3263
3264         Reviewed by Tony Chang.
3265
3266         Rename ScrollbarOverlayUtilitiesMac to ScrollbarOverlayUtilitiesChromiumMac
3267         https://bugs.webkit.org/show_bug.cgi?id=61401
3268
3269         ScrollbarOverlayUtilitiesMac.mm was being excluded from the WebCore project. Fix was to make sure the file name ended with ChromiumMac.
3270
3271         * WebCore.gypi:
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.
3276
3277 2011-05-25  James Robinson  <jamesr@chromium.org>
3278
3279         Reviewed by Geoffrey Garen
3280
3281         CachedResource overhead size calculation ignores the actual size of the URL
3282         https://bugs.webkit.org/show_bug.cgi?id=61481
3283
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
3286         can be significant.
3287
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.
3290
3291         * loader/cache/CachedResource.cpp:
3292         (WebCore::CachedResource::overheadSize):
3293
3294 2011-05-25  Oliver Hunt  <oliver@apple.com>
3295
3296         Reviewed by Geoffrey Garen.
3297
3298         Make RegExp GC allocated
3299         https://bugs.webkit.org/show_bug.cgi?id=61490
3300
3301         RegExp is GC'd so we don't need the RefPtr shenanigans anymore.
3302
3303         * bindings/js/SerializedScriptValue.cpp:
3304         (WebCore::CloneDeserializer::readTerminal):
3305
3306 2011-05-25  Martin Robinson  <mrobinson@igalia.com>
3307
3308         Reviewed by Dirk Schulze.
3309
3310         [Cairo] Move the global alpha property from GraphicsContext to PlatformContextCairo
3311         https://bugs.webkit.org/show_bug.cgi?id=60185
3312
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.
3318
3319         No new tests. This is just a code refactor.
3320
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.
3351
3352 2011-05-25  Mark Rowe  <mrowe@apple.com>
3353
3354         Reviewed by Sam Weinig.
3355
3356         <rdar://problem/9504058> Need some way to query user gesture state from injected bundle
3357
3358         * WebCore.exp.in: Add an export that WebKit2 needs.
3359
3360 2011-05-25  Jer Noble  <jer.noble@apple.com>
3361
3362         Ureviewed; Build fix for Leopard and Snow Leopard.
3363
3364         Move _wkQTMovieResolvedURL outside of a #if check for Leopard and SL.
3365
3366         * WebCore.exp.in:
3367
3368 2011-05-25  Michael Saboff  <msaboff@apple.com>
3369
3370         Reviewed by Sam Weinig.
3371
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
3374
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
3378         comments.
3379
3380         No new tests as the changes are stylistic and not functional.
3381
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):
3389
3390 2011-05-25  Stephanie Lewis  <slewis@apple.com>
3391
3392         Reviewed by Brady Eidson.
3393
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 
3398         necessary.
3399   
3400         No change in functionality so no new tests.
3401
3402         * loader/FrameLoader.cpp:
3403         (WebCore::FrameLoader::subresourceCachePolicy):
3404         * page/Settings.cpp:
3405         (WebCore::Settings::Settings):
3406         * page/Settings.h:
3407         * platform/network/cf/ResourceRequest.h:
3408         * platform/network/mac/ResourceRequestMac.mm:
3409         (WebCore::initQuickLookResourceCachingQuirks):
3410         (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
3411
3412 2011-05-24  Jer Noble  <jer.noble@apple.com>
3413
3414         Reviewed by Darin Adler.
3415
3416         Video fails to play on Vimeo
3417         https://bugs.webkit.org/show_bug.cgi?id=61403
3418
3419         No new tests; Covered by media/video-canvas-source.html.
3420
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.
3425
3426         When checking whether a given request has a single security origin, use a 
3427         SecurityOrigin to check the host, port, and scheme.
3428
3429         * WebCore.exp.in:
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.
3445
3446 2011-05-25  Andrew Scherkus  <scherkus@chromium.org>
3447
3448         Reviewed by Eric Carlson.
3449
3450         Fix media element regression where ended event stopped firing after changing the src attribute.
3451
3452         https://bugs.webkit.org/show_bug.cgi?id=61336
3453
3454         Test: media/media-ended.html
3455
3456         * html/HTMLMediaElement.cpp:
3457         (WebCore::HTMLMediaElement::prepareForLoad):
3458
3459 2011-05-25  Jer Noble  <jer.noble@apple.com>
3460
3461         Reviewed by Darin Adler.
3462
3463         REGRESSION: Fullscreen button on embedded Vimeo videos does nothing
3464         https://bugs.webkit.org/show_bug.cgi?id=61461
3465
3466         Tests: fullscreen/full-screen-iframe-legacy.html
3467
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.
3473
3474         * dom/Document.cpp:
3475         (WebCore::Document::webkitRequestFullScreenForElement):
3476         * dom/Document.h:
3477         * dom/Element.cpp:
3478         (WebCore::Element::requestFullScreen): Renamed from webkitRequestFullScreen.
3479         * html/HTMLMediaElement.cpp:
3480         (WebCore::HTMLMediaElement::enterFullscreen):
3481         * html/shadow/MediaControlElements.cpp:
3482         (WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
3483
3484 2011-05-25  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
3485
3486         Reviewed by David Hyatt.
3487
3488         Selector matching doesn't update when DOM changes ("[data-a=x] #x")
3489         https://bugs.webkit.org/show_bug.cgi?id=60752
3490
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.
3499
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
3504         again and again.
3505
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.
3511
3512         Test: fast/css/attribute-selector-dynamic-no-elementstyle.html
3513
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:
3522
3523 2011-05-25  Ryosuke Niwa  <rniwa@webkit.org>
3524
3525         Reviewed by James Robinson.
3526
3527         CSSStyleSelector should provide a way to obtain rules from non-author stylesheets
3528         https://bugs.webkit.org/show_bug.cgi?id=61454
3529
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.
3532
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.
3544
3545 2011-05-25  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3546
3547         Reviewed by Andreas Kling.
3548
3549         [Qt] JSC bridge: implement __qt_sender__ without using Scope Chain
3550         https://bugs.webkit.org/show_bug.cgi?id=61343
3551
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.
3554
3555         Since we do not support multiple threads, one static stack will be enough for
3556         handling the behavior.
3557
3558         This behavior is covered by the tst_QWebFrame::connectAndDisconnect() auto test.
3559
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.
3564
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.
3570
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
3575         pop it afterwards.
3576
3577 2011-05-25  Sheriff Bot  <webkit.review.bot@gmail.com>
3578
3579         Unreviewed, rolling out r87257.
3580         http://trac.webkit.org/changeset/87257
3581         https://bugs.webkit.org/show_bug.cgi?id=61457
3582
3583         This broke layout tests, see bug 61431. (Requested by
3584         hwennborg on #webkit).
3585
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:
3596
3597 2011-05-25  Alexis Menard  <alexis.menard@openbossa.org>
3598
3599         Reviewed by Eric Carlson.
3600
3601         [Qt] Enable usage of QuickTime mediaplayer for the Qt port on Mac.
3602         https://bugs.webkit.org/show_bug.cgi?id=61279
3603
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.
3607
3608         * WebCore.pri:
3609         * WebCore.pro:
3610         * features.pri:
3611         * platform/KURL.h:
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.
3635
3636 2011-05-25  Rob Buis  <rbuis@rim.com>
3637
3638         Reviewed by Eric Seidel.
3639         New test rubber-stamped by Dirk Schulze.
3640
3641         WebKit does not handle missing filter elements correctly
3642         https://bugs.webkit.org/show_bug.cgi?id=12569
3643
3644         Do not render elements that reference non-existant filters.
3645
3646         Test: svg/W3C-SVG-1.1-SE/filters-felem-01-b.svg
3647
3648         * rendering/svg/SVGRenderSupport.cpp:
3649         (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
3650
3651 2011-05-25  Nate Chapin  <japhet@chromium.org>
3652
3653         Reviewed by Adam Barth.
3654
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
3658
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):
3663         * dom/Document.cpp:
3664         (WebCore::Document::Document):
3665         (WebCore::Document::setIsViewSource): Renamed from setUsesViewSourceStyles(), set's a unique security origin if we are viewing source.
3666         * dom/Document.h:
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):
3674
3675 2011-05-25  Julien Chaffraix  <jchaffraix@codeaurora.org>
3676
3677         Reviewed by James Robinson.
3678
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
3681
3682         And:
3683
3684         - Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.fill.source-out.html
3685           https://bugs.webkit.org/show_bug.cgi?id=48295
3686
3687         - Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.source-in.html
3688           https://bugs.webkit.org/show_bug.cgi?id=48304
3689
3690         - Fix LayoutTests/canvas/philip/tests/2d.composite.uncovered.pattern.source-out.html
3691         https://bugs.webkit.org/show_bug.cgi?id=48305
3692
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.
3695
3696         Based on an older work by Ariya Hidayat.
3697
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.
3702
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".
3707
3708         * html/canvas/CanvasRenderingContext2D.h: Added the two previous methods.
3709
3710 2011-05-25  Levi Weintraub  <leviw@chromium.org>
3711
3712         Reviewed by Eric Seidel.
3713
3714         Add IntPoint versions of IntRect::move and IntPoint::move
3715         https://bugs.webkit.org/show_bug.cgi?id=61390
3716
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.
3720
3721         No new tests since this is refactoring.
3722
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):
3774
3775 2011-05-25  Levi Weintraub  <leviw@chromium.org>
3776
3777         Reviewed by Eric Seidel.
3778
3779         Switch addFocusRingRects to use IntPoint
3780         https://bugs.webkit.org/show_bug.cgi?id=60783
3781
3782         Switching addFocusRingRects to use an IntPoint representing the offset being
3783         applied instead of a pair of ints.
3784
3785         No new tests as this is only refactoring.
3786
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:
3821
3822 2011-05-25  Sheriff Bot  <webkit.review.bot@gmail.com>
3823
3824         Unreviewed, rolling out r87229.
3825         http://trac.webkit.org/changeset/87229
3826         https://bugs.webkit.org/show_bug.cgi?id=61445
3827
3828         Lots of tests crashing in
3829         CFNetwork!URLResponse::createFilenameFromResponseHeaders on
3830         Windows XP (Requested by aroben on #webkit).
3831
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):
3860
3861 2011-05-25  Igor Oliveira  <igor.oliveira@openbossa.org>
3862
3863         Reviewed by Antonio Gomes.
3864
3865         [Qt] QtWebKit crashes when dragging not loaded images
3866         https://bugs.webkit.org/show_bug.cgi?id=61314
3867
3868         Checks if nativeImageForCurrentFrame is a valid pointer.
3869
3870         Test: http/tests/misc/drag-not-loaded-image.html
3871
3872         * platform/qt/DragImageQt.cpp:
3873         (WebCore::createDragImageFromImage):
3874
3875 2011-05-25  Ryuan Choi  <ryuan.choi@samsung.com>
3876
3877         Reviewed by Xan Lopez.
3878
3879         [GTK] combobox and scrollbar are rendered small size at gtk+2.22.0
3880         https://bugs.webkit.org/show_bug.cgi?id=61436
3881
3882         Fix arguments of gdk_drawable_get_size.
3883
3884         No new tests, no behavior change.
3885
3886         * platform/gtk/GtkVersioning.c:
3887         (getGdkDrawableSize):
3888
3889 2011-05-23  Alexander Pavlov  <apavlov@chromium.org>
3890
3891         Reviewed by Yury Semikhatsky.
3892
3893         Web Inspector: extreme lagging when searching for "img[src*="
3894         https://bugs.webkit.org/show_bug.cgi?id=61282
3895
3896         No new tests, as this is a refactoring: ElementsTreeElement DOM is manipulated directly
3897         when built and search-highlighted, rather than through innerHTML.
3898
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):
3913         ():
3914         * inspector/front-end/utilities.js:
3915         ():
3916
3917 2011-05-25  Leandro Gracia Gil  <leandrogracia@chromium.org>
3918
3919         Reviewed by Tony Gentilcore.
3920
3921         Introduce HTML5 track list objects.
3922         https://bugs.webkit.org/show_bug.cgi?id=60184
3923
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
3927
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.
3930
3931         * CMakeLists.txt:
3932         * CodeGenerators.pri:
3933         * DerivedSources.cpp:
3934         * DerivedSources.make:
3935         * GNUmakefile.list.am:
3936         * WebCore.gypi:
3937         * WebCore.pro:
3938         * WebCore.vcproj/WebCore.vcproj:
3939         * WebCore.xcodeproj/project.pbxproj:
3940         * bindings/js/JSEventTarget.cpp:
3941         (WebCore::toJS):
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.
4001
4002 2011-05-25  Keishi Hattori  <keishi@webkit.org>
4003
4004         Reviewed by Kent Tamura.
4005
4006         Move ElementWithPseudoId to separate file
4007         https://bugs.webkit.org/show_bug.cgi?id=61430
4008
4009         No new tests because no behavior changes.
4010
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):
4023
4024 2011-05-25  Alexis Menard  <alexis.menard@openbossa.org>
4025
4026         Reviewed by Antonio Gomes.
4027
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
4030
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.
4035
4036         * platform/qt/ScrollbarThemeQt.cpp:
4037         (WebCore::ScrollbarThemeQt::paint):
4038
4039 2011-05-25  Yuta Kitamura  <yutak@chromium.org>
4040
4041         Reviewed by Kent Tamura.
4042
4043         WebSocket: Use fail() when WebSocketChannel has failed
4044         https://bugs.webkit.org/show_bug.cgi?id=61353
4045
4046         An existing error message has been modified, but it is impossible