2011-05-20 Leo Yang <leo.yang@torchmobile.com.cn>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-05-20  Leo Yang  <leo.yang@torchmobile.com.cn>
2
3         Reviewed by Nikolas Zimmermann.
4
5         SVGRootInlineBox triggers calculateBoundaries twice in layout
6         https://bugs.webkit.org/show_bug.cgi?id=60979
7
8         SVGRootInlineBox was calculating boundaries for children twice
9         in computePerCharacterLayoutInformation(). The first time of
10         calculation was in layoutChildBoxes() which is called by
11         computePerCharacterLayoutInformation(), and the second time of
12         calculation was in layoutRootBox() following layoutChildBoxes().
13
14         This patch calculates rectangle of children in layoutChildBoxes()
15         and then uses the rectange in layoutRootBox() to reduce a pass
16         of calculating child boundaries.
17
18         No functionality change, no new tests.
19
20         * rendering/svg/SVGRootInlineBox.cpp:
21         (WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
22         (WebCore::SVGRootInlineBox::layoutChildBoxes):
23         (WebCore::SVGRootInlineBox::layoutRootBox):
24         * rendering/svg/SVGRootInlineBox.h:
25
26 2011-05-19  Naoki Takano  <takano.naoki@gmail.com>
27
28         Reviewed by Kent Tamura.
29
30         Fix a problem that updating HTMLInputElement::value sets the cursor to a wrong position.
31         https://bugs.webkit.org/show_bug.cgi?id=61163
32
33         Manual test input-number-localization.html.
34         Because we can't assume any number formats in various WebKit ports.
35
36         * html/HTMLInputElement.cpp:
37         (WebCore::HTMLInputElement::setValue): The cursor must be the last position of visibleValue(), not m_value.
38         * manual-tests/input-number-localization.html: Added manual test to check the cursor correctly moved to the last poisition of the input.
39
40 2011-05-19  Jer Noble  <jer.noble@apple.com>
41
42         Reviewed by Maciej Stachowiak.
43
44         WebKit2: Flashing when entering and exiting full screen mode
45         https://bugs.webkit.org/show_bug.cgi?id=56957
46
47         Guard against the parameter of setAnimating() matching the ivar value it's 
48         setting, thus avoiding tearing down the renderer's layer backing.
49
50         * rendering/RenderFullScreen.cpp:
51         (RenderFullScreen::setAnimating):
52
53 2011-05-19  Julien Chaffraix  <jchaffraix@codeaurora.org>
54
55         Reviewed by Adam Barth.
56
57         Remove Node::deprecatedParserAddChild
58         https://bugs.webkit.org/show_bug.cgi?id=60818
59
60         Refactoring only so no new tests.
61
62         This patch fails short of one instance of deprecatedParserAddChild which will
63         require a refactoring of <input> shadow DOM to be removed.
64
65         * dom/XMLDocumentParser.cpp:
66         (WebCore::XMLDocumentParser::pushCurrentNode): Updated to use a ContainerNode.
67         (WebCore::XMLDocumentParser::clearCurrentNodeStack): We now need to clear
68         up m_leafTextNode too.
69
70         (WebCore::XMLDocumentParser::enterText):
71         (WebCore::XMLDocumentParser::exitText):
72         Those methods were updated to use m_leafTextNode instead of m_currentNode.
73
74         * dom/XMLDocumentParser.h:
75         Changed the currentNode logic to use ContainerNode. Also fixed the style of the
76         forward declarations.
77
78         * dom/XMLDocumentParserLibxml2.cpp:
79         (WebCore::XMLDocumentParser::startElementNs):
80         (WebCore::XMLDocumentParser::endElementNs):
81         (WebCore::XMLDocumentParser::characters):
82         (WebCore::XMLDocumentParser::processingInstruction):
83         (WebCore::XMLDocumentParser::cdataBlock):
84         (WebCore::XMLDocumentParser::comment):
85         * dom/XMLDocumentParserQt.cpp:
86         (WebCore::XMLDocumentParser::parse):
87         (WebCore::XMLDocumentParser::parseStartElement):
88         (WebCore::XMLDocumentParser::parseEndElement):
89         (WebCore::XMLDocumentParser::parseCharacters):
90         (WebCore::XMLDocumentParser::parseProcessingInstruction):
91         (WebCore::XMLDocumentParser::parseCdata):
92         (WebCore::XMLDocumentParser::parseComment):
93         Removed the calls to deprecatedParserAddChild, changed the code to use
94         m_leafTextNode when it made sense and used ContainerNode instead of
95         Node for m_currentNode.
96
97 2011-05-19  Mike Lawther  <mikelawther@chromium.org>
98
99         Reviewed by Simon Fraser.
100
101         implement image-rendering: optimize-contrast (with a vendor prefix) as defined in CSS3 image values
102         https://bugs.webkit.org/show_bug.cgi?id=56627
103
104         Tests: css3/images/optimize-contrast-canvas.html
105                css3/images/optimize-contrast-image.html
106
107         * WebCore.xcodeproj/project.pbxproj:
108         * css/CSSComputedStyleDeclaration.cpp:
109         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
110         * css/CSSParser.cpp:
111         (WebCore::CSSParser::parseValue):
112         * css/CSSPrimitiveValueMappings.h:
113         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
114         (WebCore::CSSPrimitiveValue::operator EImageRendering):
115         * css/CSSPropertyNames.in:
116         * css/CSSStyleSelector.cpp:
117         (WebCore::CSSStyleSelector::applyProperty):
118         * css/CSSValueKeywords.in:
119         * css/SVGCSSComputedStyleDeclaration.cpp:
120         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
121         * css/SVGCSSPropertyNames.in:
122         * css/SVGCSSStyleSelector.cpp:
123         (WebCore::CSSStyleSelector::applySVGProperty):
124         * css/SVGCSSValueKeywords.in:
125         * html/HTMLCanvasElement.cpp:
126         (WebCore::HTMLCanvasElement::paint):
127         * html/HTMLCanvasElement.h:
128         * platform/graphics/ImageRenderingMode.h: Added.
129         * rendering/RenderBoxModelObject.cpp:
130         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
131         * rendering/RenderHTMLCanvas.cpp:
132         (WebCore::RenderHTMLCanvas::paintReplaced):
133         * rendering/style/RenderStyle.cpp:
134         (WebCore::RenderStyle::diff):
135         * rendering/style/RenderStyle.h:
136         (WebCore::InheritedFlags::imageRendering):
137         (WebCore::InheritedFlags::setImageRendering):
138         (WebCore::InheritedFlags::initialImageRendering):
139         * rendering/style/RenderStyleConstants.h:
140         * rendering/style/SVGRenderStyle.cpp:
141         (WebCore::SVGRenderStyle::diff):
142         * rendering/style/SVGRenderStyle.h:
143         (WebCore::SVGRenderStyle::InheritedFlags::operator==):
144         (WebCore::SVGRenderStyle::setBitDefaults):
145         * rendering/style/SVGRenderStyleDefs.h:
146         * rendering/svg/SVGRenderTreeAsText.cpp:
147         (WebCore::writeStyle):
148
149 2011-05-18  Kenneth Russell  <kbr@google.com>
150
151         Reviewed by James Robinson.
152
153         [chromium] Disable blending in compositor for WebGL layers with alpha=false
154         https://bugs.webkit.org/show_bug.cgi?id=61091
155
156         Test: compositing/webgl/webgl-no-alpha.html
157
158         * platform/graphics/chromium/CanvasLayerChromium.cpp:
159         (WebCore::CanvasLayerChromium::CanvasLayerChromium):
160         (WebCore::CanvasLayerChromium::pushPropertiesTo):
161         * platform/graphics/chromium/CanvasLayerChromium.h:
162         * platform/graphics/chromium/WebGLLayerChromium.cpp:
163         (WebCore::WebGLLayerChromium::setContext):
164         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
165         (WebCore::CCCanvasLayerImpl::CCCanvasLayerImpl):
166         (WebCore::CCCanvasLayerImpl::draw):
167         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
168         (WebCore::CCCanvasLayerImpl::setHasAlpha):
169
170 2011-05-18  Jeremy Noble  <jer.noble@apple.com>
171
172         Reviewed by Darin Adler.
173
174         Poster is not shown in Safari for video element with no playable source elements.
175         https://bugs.webkit.org/show_bug.cgi?id=61109
176
177         Test: media/video-src-invalid-poster.html
178
179         In the case where no video sources are playable, update the display state and 
180         renderer, allowing the poster image to display.
181
182         * html/HTMLMediaElement.cpp:
183         (WebCore::HTMLMediaElement::waitForSourceChange): 
184
185 2011-05-19  Andrew Wilson  <atwilson@chromium.org>
186
187         Reviewed by Darin Adler.
188
189         MessagePortArray cloning code needs to verify source before copying.
190         https://bugs.webkit.org/show_bug.cgi?id=61130
191
192         * bindings/js/JSMessagePortCustom.cpp:
193         (WebCore::fillMessagePortArray):
194         Changed code to not pre-allocate the destination array.
195         * bindings/v8/custom/V8MessagePortCustom.cpp:
196         (WebCore::getMessagePortArray):
197         Changed code to not pre-allocate the destination array.
198
199 2011-05-19  Sheriff Bot  <webkit.review.bot@gmail.com>
200
201         Unreviewed, rolling out r86869, r86873, r86875, and r86877.
202         http://trac.webkit.org/changeset/86869
203         http://trac.webkit.org/changeset/86873
204         http://trac.webkit.org/changeset/86875
205         http://trac.webkit.org/changeset/86877
206         https://bugs.webkit.org/show_bug.cgi?id=61139
207
208         broke builds and debug DRT (Requested by rniwa on #webkit).
209
210         * DerivedSources.make:
211         * WebCore.exp.in:
212         * WebCore.gyp/WebCore.gyp:
213         * WebCore.gypi:
214         * WebCore.xcodeproj/project.pbxproj:
215         * testing/Internals.cpp: Removed.
216         * testing/Internals.h: Removed.
217         * testing/Internals.idl: Removed.
218         * testing/js/WebCoreTestSupport.cpp: Removed.
219         * testing/js/WebCoreTestSupport.h: Removed.
220         * testing/v8/WebCoreTestSupport.cpp: Removed.
221         * testing/v8/WebCoreTestSupport.h: Removed.
222
223 2011-05-19  Dimitri Glazkov  <dglazkov@chromium.org>
224
225         One more fix after r86869.
226
227         * WebCore.exp.in: Made __ZN7WebCore12JSDOMWrapperD2Ev only export for debug builds.
228
229 2011-05-19  Anders Carlsson  <andersca@apple.com>
230
231         Add two more symbols needed by the window.internals library.
232
233         * WebCore.exp.in:
234
235 2011-05-19  Dimitri Glazkov  <dglazkov@chromium.org>
236
237         Fix Leopard build after r86869.
238
239         * WebCore.exp.in: Moved now-always-used exported symbols out of the conditional guard.
240
241 2011-05-19  Robert Hogan  <robert@webkit.org>
242
243         Reviewed by Andreas Kling.
244
245         [Qt] Fix plugins/windowless_plugin_paint_test.html
246         https://bugs.webkit.org/show_bug.cgi?id=60992
247
248         Call gdk_init_check before gdk_display_get_default().
249         If we don't do this, gdk_display_get_default() will hang
250         the next time it's called.
251
252         * plugins/qt/PluginViewQt.cpp:
253         (WebCore::getPluginDisplay):
254
255 2011-05-18  Dimitri Glazkov  <dglazkov@chromium.org>
256
257         Reviewed by Darin Adler.
258
259         Add build logistics and plumbing for window.internals object.
260         https://bugs.webkit.org/show_bug.cgi?id=60313
261
262         Test: fast/harness/internals-object.html
263
264         * DerivedSources.make: Added support for generating from Internals.idl.
265         * WebCore.gyp/WebCore.gyp: Added new webcore_test_support library.
266         * WebCore.gypi: Ditto.
267         * WebCore.xcodeproj/project.pbxproj: Added WebCoreTestSupport library.
268         * testing/Internals.cpp: Added.
269         * testing/Internals.h: Added.
270         * testing/Internals.idl: Added.
271         * testing/js/WebCoreTestSupport.cpp: Added.
272         * testing/js/WebCoreTestSupport.h: Added.
273         * testing/v8/WebCoreTestSupport.cpp: Added.
274         * testing/v8/WebCoreTestSupport.h: Added.
275
276 2011-05-19  Dimitri Glazkov  <dglazkov@chromium.org>
277
278         Accept XCode's decisions to keep modifying WebCore.xcodeproj.
279
280         * WebCore.xcodeproj/project.pbxproj: Opened in XCode then closed.
281
282 2011-05-19  Andrew Wason  <rectalogic@rectalogic.com>
283
284         Reviewed by Darin Adler.
285
286         Fix GraphicsContext3DQt.cpp compile error
287         https://bugs.webkit.org/show_bug.cgi?id=61128
288
289         * platform/graphics/qt/GraphicsContext3DQt.cpp:
290         (WebCore::GraphicsContext3D::GraphicsContext3D):
291          clear() m_internal OwnPtr.
292
293 2011-05-19  Tonis Tiigi  <tonistiigi@gmail.com>
294
295         Reviewed by Pavel Feldman.
296
297         Web Inspector: Resizing columns in the network panel is weird
298         https://bugs.webkit.org/show_bug.cgi?id=55238
299
300         Makes network panel column resizing more usable by adding "first only" and "last only"
301         resizing methods to WebInspector.DataGrid. Current behavior is named "nearest" and
302         remains default. Network panels datagrid is set to use method "last".
303
304         * inspector/front-end/DataGrid.js:
305         (WebInspector.DataGrid.prototype.get resizeMethod):
306         (WebInspector.DataGrid.prototype.set resizeMethod):
307         (WebInspector.DataGrid.prototype._resizerDragging):
308         * inspector/front-end/NetworkPanel.js:
309         (WebInspector.NetworkPanel.prototype._createTable):
310
311 2011-05-19  Ryosuke Niwa  <rniwa@webkit.org>
312
313         Reviewed by Darin Adler.
314
315         JoinTextNodesCommand is never used
316         https://bugs.webkit.org/show_bug.cgi?id=61089
317
318         Deleted JoinTextNodesCommand because it's never used.
319
320         * CMakeLists.txt:
321         * GNUmakefile.list.am:
322         * WebCore.gypi:
323         * WebCore.pro:
324         * WebCore.vcproj/WebCore.vcproj:
325         * WebCore.xcodeproj/project.pbxproj:
326         * editing/CompositeEditCommand.cpp:
327         * editing/CompositeEditCommand.h:
328         * editing/EditingAllInOne.cpp:
329         * editing/JoinTextNodesCommand.cpp: Removed.
330         * editing/JoinTextNodesCommand.h: Removed.
331
332 2011-05-19  Ryosuke Niwa  <rniwa@webkit.org>
333
334         Reviewed by Darin Adler.
335
336         REGRESSION (r83322): Many crashes in Mail.app in WebCore::Node::nodeIndex
337         https://bugs.webkit.org/show_bug.cgi?id=61012
338
339         The crash was caused by ReplaceSelectionCommand's inserting content into a middle of the paragraph
340         being moved when the insertion position's container node is the node to split to. Fixed the crash
341         by not changing the insertion position in such a case.
342
343         Unfortunately, this fix caused markup to bloat in some tests but we'll take this regression since
344         it's much better than crashing.
345
346         Test: editing/pasteboard/paste-after-inline-style-element.html
347
348         * editing/ReplaceSelectionCommand.cpp:
349         (WebCore::ReplaceSelectionCommand::doApply):
350
351 2011-05-19  Brady Eidson  <beidson@apple.com>
352
353         Try to fix SUPPORT_AUTOCORRECTION_PANEL build.
354
355         * editing/SpellingCorrectionController.cpp:
356         (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection):
357         (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult):
358
359 2011-05-19  Darin Adler  <darin@apple.com>
360
361         Try to fix SUPPORT_AUTOCORRECTION_PANEL build.
362
363         * editing/SpellingCorrectionController.cpp:
364         (WebCore::markersHaveIdenticalDescription): Call description() function.
365
366 2011-05-19  Andrey Adaikin  <aandrey@google.com>
367
368         Reviewed by Pavel Feldman.
369
370         Web Inspector: switch to Scripts panel is too slow
371         https://bugs.webkit.org/show_bug.cgi?id=61030
372
373         - It is very expensive to listen to the DOM mutation events, thus we remove the listeners whenever we do any internal
374         DOM manipulations (such as expand/collapse line rows) and set the listeners back when we are finished.
375         - Also, when we switch to the Scripts panel that have a non-zero scrollTop offset, we would do the rendering work twice.
376
377         * inspector/front-end/SourceFrame.js:
378         (WebInspector.SourceFrame.prototype.show):
379         * inspector/front-end/TextViewer.js:
380         (WebInspector.TextEditorMainPanel):
381         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
382         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
383         (WebInspector.TextEditorMainPanel.prototype._enableDOMNodeRemovedListener):
384         (WebInspector.TextEditorMainChunk):
385         (WebInspector.TextEditorMainChunk.prototype.set expanded):
386         (WebInspector.TextEditorMainChunk.prototype._createRow):
387
388 2011-05-19  Pavel Feldman  <pfeldman@google.com>
389
390         Not reviewed: inspector protocol tests fixed.
391
392         * inspector/InjectedScriptSource.js:
393
394 2011-05-19  David Grogan  <dgrogan@chromium.org>
395
396         Reviewed by David Levin.
397
398         Make EventQueue post a Task to the task queue for each asynchronous event
399         https://bugs.webkit.org/show_bug.cgi?id=60790
400
401         Currently EventQueue queues up events to be fired asynchronously and
402         fires each of them when a single DOMTimer goes off.  In the words of
403         dimich, "Having 2 queues will sooner or later cause problems with
404         ordering of tasks, termination, suspension and other things that all
405         require some control on how queues operate."
406
407         No new tests; this is just a refactoring to avoid potential future
408         problems.
409
410         * dom/EventQueue.cpp:
411         (WebCore::EventQueue::EventQueue):
412         (WebCore::EventQueue::EventDispatcherTask::create):
413         (WebCore::EventQueue::EventDispatcherTask::dispatchEvent):
414         (WebCore::EventQueue::EventDispatcherTask::performTask):
415         (WebCore::EventQueue::EventDispatcherTask::cancel):
416         (WebCore::EventQueue::EventDispatcherTask::EventDispatcherTask):
417         (WebCore::EventQueue::removeEvent):
418         (WebCore::EventQueue::enqueueEvent):
419         (WebCore::EventQueue::enqueueOrDispatchScrollEvent):
420         (WebCore::EventQueue::cancelEvent):
421         (WebCore::EventQueue::cancelQueuedEvents):
422         * dom/EventQueue.h:
423
424 2011-05-18  Yury Semikhatsky  <yurys@chromium.org>
425
426         Reviewed by Pavel Feldman.
427
428         InjectedScriptSource.js - "Don't be eval()."
429         https://bugs.webkit.org/show_bug.cgi?id=60800
430
431         Thanks to Adam Barth for providing JSC implementation!
432
433         InjectedScriptHost.evaluate is used to perform script evaluations for
434         inspector needs. This method is not affected by CSP and should fix inspector
435         on pages with CSP restrictions.
436
437         Test: inspector/console/console-eval-blocked.html
438
439         * bindings/js/JSInjectedScriptHostCustom.cpp:
440         (WebCore::JSInjectedScriptHost::evaluate):
441         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
442         (WebCore::V8InjectedScriptHost::evaluateCallback):
443         (WebCore::V8InjectedScriptHost::inspectedNodeCallback):
444         * inspector/InjectedScriptHost.idl:
445         * inspector/InjectedScriptSource.js:
446         (.):
447
448 2011-05-19  Pavel Feldman  <pfeldman@google.com>
449
450         Reviewed by Yury Semikhatsky.
451
452         Web Inspector: expose object class name as a part of RemoteObject mirror.
453         https://bugs.webkit.org/show_bug.cgi?id=61067
454
455         * inspector/InjectedScriptSource.js:
456         * inspector/Inspector.json:
457
458 2011-05-19  Pavel Feldman  <pfeldman@google.com>
459
460         Reviewed by Yury Semikhatsky.
461
462         Web Inspector: make "this" a part of callFrame, not scope in the protocol.
463         https://bugs.webkit.org/show_bug.cgi?id=61057
464
465         * inspector/InjectedScriptSource.js:
466         * inspector/Inspector.json:
467         * inspector/front-end/ScopeChainSidebarPane.js:
468         (WebInspector.ScopeChainSidebarPane.prototype.update):
469
470 2011-05-19  Kent Tamura  <tkent@chromium.org>
471
472         Reviewed by Hajime Morita.
473
474         tooLong validity should not be true for a value set by a script
475         https://bugs.webkit.org/show_bug.cgi?id=60948
476
477         The specification has been updated so that tooLong should be true only
478         for user-edit values.
479         
480         Introduce m_wasModifiedByUser flag to HTMLInputElement and
481         HTMLTextAreaElemnt. It is set to true when a renderer updates the
482         value, and is cleared when the value is updated by others.
483
484         * html/HTMLInputElement.cpp:
485         (WebCore::HTMLInputElement::HTMLInputElement):
486           Initialize m_wasModifiedByUser.
487         (WebCore::HTMLInputElement::tooLong):
488           Skip the check if m_wasModifiedByUser is false.
489         (WebCore::HTMLInputElement::updateType): Clear m_wasModifiedByUser.
490         (WebCore::HTMLInputElement::copyNonAttributeProperties):
491         (WebCore::HTMLInputElement::setValue): If sendChange is true,
492           m_wasModifiedByUser should be true because sendChange is set in a case
493           of form auto-fill.  We assume a value set by form auto-fill is a kind
494           of user-edit.
495         (WebCore::HTMLInputElement::setValueFromRenderer):
496           m_wasModifiedByUser should be true for the update by a renderer.
497         * html/HTMLInputElement.h: Declare m_wasModifiedByUser.
498         * html/HTMLTextAreaElement.cpp:
499         (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
500           Initialize m_wasModifiedByUser.
501         (WebCore::HTMLTextAreaElement::updateValue):
502           m_wasModifiedByUser should be true for the update by a renderer.
503         (WebCore::HTMLTextAreaElement::setValueCommon): Clear m_wasModifiedByUser.
504         (WebCore::HTMLTextAreaElement::tooLong):
505           Skip the check if m_wasModifiedByUser is false.
506         * html/HTMLTextAreaElement.h: Declare m_wasModifiedByUser.
507
508 2011-05-19  David Barr  <davidbarr@chromium.org>
509
510         Reviewed by Simon Fraser.
511
512         CSS3: We fail 'border radius sum of radii' test
513         https://bugs.webkit.org/show_bug.cgi?id=38788
514
515         Ignore border-radius properties with negative values.
516
517         Test: fast/css/border-radius-non-negative.html
518
519         * WebCore.xcodeproj/project.pbxproj:
520         * css/CSSParser.cpp:
521         (WebCore::CSSParser::parseValue):
522         (WebCore::CSSParser::parseBorderRadius):
523
524 2011-05-19  Yuta Kitamura  <yutak@chromium.org>
525
526         Reviewed by Kent Tamura.
527
528         WebSocket: Use ScriptContext::Task to hold pending events of ThreadableWebSocketChannelClientWrapper
529         https://bugs.webkit.org/show_bug.cgi?id=61034
530
531         Refactoring only. No new tests.
532
533         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
534         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
535         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
536         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
537         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
538         (WebCore::ThreadableWebSocketChannelClientWrapper::resume):
539         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
540         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback):
541         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback):
542         (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
543         * websockets/ThreadableWebSocketChannelClientWrapper.h:
544         Remove m_pendingConnected, m_pendingMessages and m_pendingClosed, and use ScriptContext::Task
545         to hold these pending events.
546
547 2011-05-19  Emil A Eklund  <eae@chromium.org>
548
549         Reviewed by Alexey Proskuryakov.
550
551         REGRESSION (r80808): Multiple <select> - Selection reset to first element from multiple selected ones
552         https://bugs.webkit.org/show_bug.cgi?id=60986
553
554         * html/HTMLSelectElement.cpp:
555         (WebCore::HTMLSelectElement::setMultiple):
556         Don't restore selection if the multiple attribute hasn't changed.
557
558 2011-05-18  Fumitoshi Ukai  <ukai@chromium.org>
559
560         Reviewed by Alexey Proskuryakov.
561
562         http/tests/websocket/tests/workers/worker-handshake-challenge-randomness.html crashed once on Windows XP Debug (Tests)
563         https://bugs.webkit.org/show_bug.cgi?id=57048
564
565         * platform/network/cf/SocketStreamHandleCFNet.cpp:
566         (WebCore::SocketStreamHandle::platformClose): use loaderRunLoop to schedule streams on platform WIN
567
568 2011-05-18  MORITA Hajime  <morrita@google.com>
569
570         Unreviewed attempt to fix clang build.
571
572         * rendering/InlineTextBox.h:
573
574 2011-05-18  Nat Duca  <nduca@chromium.org>
575
576         Reviewed by James Robinson.
577
578         [chromium] Add histograms for paint times
579         https://bugs.webkit.org/show_bug.cgi?id=61010
580
581         * platform/graphics/chromium/ContentLayerChromium.cpp:
582         (WebCore::ContentLayerPainter::paint):
583
584 2011-05-18  Adrienne Walker  <enne@google.com>
585
586         Reviewed by James Robinson.
587
588         [chromium] Fix incorrect size when clipping image layer upload rects
589         https://bugs.webkit.org/show_bug.cgi?id=61105
590
591         The clipped destination and source rects should have the same size.
592
593         * platform/graphics/chromium/ImageLayerChromium.cpp:
594         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
595
596 2011-05-17  MORITA Hajime  <morrita@google.com>
597
598         Reviewed by Tony Chang.
599
600         [Refactoring] Member variables of DocumentMarker should be encapsulated.
601         https://bugs.webkit.org/show_bug.cgi?id=56814
602
603         - Moved DocumentMarker's member variables to private and added getters for them.
604         - Added DocumentMarker setters and constructors, which contain assertions against m_type values
605           because description and activeMatch are used with specific type of MarkerType.
606         - Moved chromium's WebKit::WebFrameImpl::addMarker() to DocumentMarkerController::addTextMatchMarker()
607           because it accesses DocumentMarker internals.
608         - Moved a version of DMC::addMarker() to private and add alternatives that hide
609           internals of DocumentMarker. (The internal will be renewed by upcoming change.)
610         
611         * dom/DocumentMarker.h:
612         (WebCore::DocumentMarker::type):
613         (WebCore::DocumentMarker::startOffset):
614         (WebCore::DocumentMarker::endOffset):
615         (WebCore::DocumentMarker::description):
616         (WebCore::DocumentMarker::hasDescription):
617         (WebCore::DocumentMarker::activeMatch):
618         (WebCore::DocumentMarker::clearDescription):
619         (WebCore::DocumentMarker::setStartOffset):
620         (WebCore::DocumentMarker::setEndOffset):
621         (WebCore::DocumentMarker::operator==):
622         (WebCore::DocumentMarker::DocumentMarker):
623         (WebCore::DocumentMarker::shiftOffsets):
624         (WebCore::DocumentMarker::setActiveMatch):
625         * dom/DocumentMarkerController.cpp:
626         (WebCore::DocumentMarkerController::addMarker):
627         (WebCore::DocumentMarkerController::addTextMatchMarker):
628         (WebCore::DocumentMarkerController::copyMarkers):
629         (WebCore::DocumentMarkerController::removeMarkers):
630         (WebCore::DocumentMarkerController::markerContainingPoint):
631         (WebCore::DocumentMarkerController::markersInRange):
632         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
633         (WebCore::DocumentMarkerController::removeMarkersFromList):
634         (WebCore::DocumentMarkerController::repaintMarkers):
635         (WebCore::DocumentMarkerController::shiftMarkers):
636         (WebCore::DocumentMarkerController::setMarkersActive):
637         (WebCore::DocumentMarkerController::hasMarkers):
638         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
639         (WebCore::DocumentMarkerController::showMarkers):
640         * dom/DocumentMarkerController.h:
641         * editing/CompositeEditCommand.cpp:
642         (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
643         * editing/DeleteSelectionCommand.cpp:
644         (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
645         * editing/Editor.cpp:
646         (WebCore::Editor::selectionStartHasMarkerFor):
647         * editing/SpellingCorrectionController.cpp:
648         (WebCore::SpellingCorrectionController::respondToChangedSelection):
649         * editing/SpellingCorrectionController.h:
650         (WebCore::SpellingCorrectionController::shouldStartTimerFor):
651         * rendering/HitTestResult.cpp:
652         (WebCore::HitTestResult::spellingToolTip):
653         (WebCore::HitTestResult::replacedString):
654         * rendering/InlineTextBox.cpp:
655         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
656         (WebCore::InlineTextBox::paintTextMatchMarker):
657         (WebCore::InlineTextBox::computeRectForReplacementMarker):
658         (WebCore::InlineTextBox::paintDocumentMarkers):
659         * rendering/svg/SVGInlineFlowBox.cpp:
660         (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
661
662 2011-05-18  Oliver Hunt  <oliver@apple.com>
663
664         Reviewed by Geoffrey Garen.
665
666         +[WebScriptObject throwException:] doesn't work when invoked from obj-c field access
667         https://bugs.webkit.org/show_bug.cgi?id=61100
668
669         The objc bindings were written to assume exceptions would
670         come from obj-c style exceptions, rather than throwException:
671         This code simply calls the global ObjcInstance mechanism for
672         transferring the reported exception.
673
674         * bridge/objc/objc_instance.h:
675         * bridge/objc/objc_runtime.mm:
676         (JSC::Bindings::ObjcField::valueFromInstance):
677         (JSC::Bindings::ObjcField::setValueToInstance):
678
679 2011-05-16  Adrienne Walker  <enne@google.com>
680
681         Reviewed by James Robinson.
682
683         [chromium] Robustly handle mapTexSubImage2D returning NULL
684         https://bugs.webkit.org/show_bug.cgi?id=60934
685
686         Also, lazily create the temp buffer so that both the map and non-map
687         cases can use it.
688
689         * platform/graphics/chromium/LayerTextureSubImage.cpp:
690         (WebCore::LayerTextureSubImage::setSubImageSize):
691         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
692         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
693
694 2011-05-18  Emil A Eklund  <eae@chromium.org>
695
696         Reviewed by Darin Adler.
697
698         Change RenderTextControl::hitInnerTextElement to use IntPoint
699         https://bugs.webkit.org/show_bug.cgi?id=61003
700
701         Covered by existing tests.
702
703         * rendering/RenderTextControl.cpp:
704         (WebCore::RenderTextControl::hitInnerTextElement):
705         * rendering/RenderTextControl.h:
706         * rendering/RenderTextControlMultiLine.cpp:
707         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
708         * rendering/RenderTextControlSingleLine.cpp:
709         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
710
711 2011-05-18  Chris Fleizach  <cfleizach@apple.com>
712
713         Reviewed by Maciej Stachowiak.
714
715         WK2: VoiceOver cannot move focus into a web area programmatically
716         https://bugs.webkit.org/show_bug.cgi?id=60661
717
718         Accessibility code relies on the ability to bring focus to the containing widget view.
719         In WK2, that message needs to be propagated to the UI process.
720
721         * page/ChromeClient.h:
722         (WebCore::ChromeClient::makeFirstResponder):
723         * page/mac/ChromeMac.mm:
724         (WebCore::Chrome::focusNSView):
725         * platform/mac/WidgetMac.mm:
726         (WebCore::Widget::setFocus):
727
728 2011-05-18  Alok Priyadarshi  <alokp@chromium.org> and Adrienne Walker  <enne@google.com>
729
730         Reviewed by James Robinson.
731
732         [chromium] Split canvas from LayerTilerChromium
733         https://bugs.webkit.org/show_bug.cgi?id=60719
734
735         LayerTilerChromium now just does tiling. It delegates the task of painting and updating textures to LayerTextureUpdater.
736         Also abstracted LayerTextureSubImage to upload texture pixels.
737
738         * WebCore.gypi:
739         * platform/chromium/TraceEvent.h:
740         * platform/graphics/chromium/ContentLayerChromium.cpp:
741         (WebCore::ContentLayerChromium::create):
742         (WebCore::ContentLayerChromium::ContentLayerChromium):
743         (WebCore::ContentLayerChromium::~ContentLayerChromium):
744         (WebCore::ContentLayerChromium::paintContentsIfDirty):
745         (WebCore::ContentLayerChromium::cleanupResources):
746         (WebCore::ContentLayerChromium::setLayerRenderer):
747         (WebCore::ContentLayerChromium::createTextureUpdater):
748         (WebCore::ContentLayerChromium::drawsContent):
749         (WebCore::ContentLayerChromium::createTilerIfNeeded):
750         (WebCore::ContentLayerChromium::updateCompositorResources):
751         * platform/graphics/chromium/ContentLayerChromium.h:
752         * platform/graphics/chromium/ImageLayerChromium.cpp:
753         (WebCore::ImageLayerTextureUpdater::ImageLayerTextureUpdater):
754         (WebCore::ImageLayerTextureUpdater::~ImageLayerTextureUpdater):
755         (WebCore::ImageLayerTextureUpdater::orientation):
756         (WebCore::ImageLayerTextureUpdater::prepareToUpdate):
757         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
758         (WebCore::ImageLayerTextureUpdater::imageRect):
759         (WebCore::ImageLayerChromium::paintContentsIfDirty):
760         (WebCore::ImageLayerChromium::updateCompositorResources):
761         (WebCore::ImageLayerChromium::createTextureUpdater):
762         * platform/graphics/chromium/ImageLayerChromium.h:
763         * platform/graphics/chromium/LayerPainterChromium.h: Added.
764         * platform/graphics/chromium/LayerRendererChromium.cpp:
765         (WebCore::LayerRendererChromium::create):
766         (WebCore::LayerRendererChromium::LayerRendererChromium):
767         (WebCore::LayerRendererChromium::updateRootLayerContents):
768         (WebCore::LayerRendererChromium::drawRootLayer):
769         (WebCore::LayerRendererChromium::updateAndDrawLayers):
770         (WebCore::LayerRendererChromium::updateLayers):
771         * platform/graphics/chromium/LayerRendererChromium.h:
772         * platform/graphics/chromium/LayerTextureSubImage.cpp: Added.
773         (WebCore::LayerTextureSubImage::LayerTextureSubImage):
774         (WebCore::LayerTextureSubImage::~LayerTextureSubImage):
775         (WebCore::LayerTextureSubImage::setSubImageSize):
776         (WebCore::LayerTextureSubImage::upload):
777         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
778         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
779         * platform/graphics/chromium/LayerTextureSubImage.h: Copied from Source/WebCore/platform/chromium/TraceEvent.h.
780         * platform/graphics/chromium/LayerTextureUpdater.h: Copied from Source/WebCore/platform/chromium/TraceEvent.h.
781         (WebCore::LayerTextureUpdater::LayerTextureUpdater):
782         (WebCore::LayerTextureUpdater::~LayerTextureUpdater):
783         (WebCore::LayerTextureUpdater::context):
784         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Added.
785         (WebCore::LayerTextureUpdaterCanvas::LayerTextureUpdaterCanvas):
786         (WebCore::LayerTextureUpdaterCanvas::paintContents):
787         (WebCore::LayerTextureUpdaterBitmap::LayerTextureUpdaterBitmap):
788         (WebCore::LayerTextureUpdaterBitmap::prepareToUpdate):
789         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
790         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Added.
791         (WebCore::LayerTextureUpdaterCanvas::~LayerTextureUpdaterCanvas):
792         (WebCore::LayerTextureUpdaterCanvas::contentRect):
793         (WebCore::LayerTextureUpdaterBitmap::~LayerTextureUpdaterBitmap):
794         (WebCore::LayerTextureUpdaterBitmap::orientation):
795         * platform/graphics/chromium/LayerTilerChromium.cpp:
796         (WebCore::LayerTilerChromium::create):
797         (WebCore::LayerTilerChromium::LayerTilerChromium):
798         (WebCore::LayerTilerChromium::setTileSize):
799         (WebCore::LayerTilerChromium::prepareToUpdate):
800         (WebCore::LayerTilerChromium::updateRect):
801         (WebCore::LayerTilerChromium::draw):
802         * platform/graphics/chromium/LayerTilerChromium.h:
803         (WebCore::LayerTilerChromium::Tile::Tile):
804         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
805         (WebCore::CCHeadsUpDisplay::draw):
806
807 2011-05-18  Mark Pilgrim  <pilgrim@chromium.org>
808
809         Reviewed by Tony Chang.
810
811         IndexedDB put() should fail adding to object store that uses
812         out-of-line keys and has no key generator and the key parameter
813         was not provided
814         https://bugs.webkit.org/show_bug.cgi?id=58609
815
816         Out-of-line keys means that objectStore->m_keyPath is null in ::put(),
817         no key generator means that objectStore->autoIncrement() is false, and
818         key parameter was not provided means that prpKey will be a null pointer.
819         The combination of these 3 should throw a DATA_ERR.
820
821         Test: storage/indexeddb/mozilla/key-requirements-put-no-key.html
822
823         * storage/IDBObjectStoreBackendImpl.cpp:
824         (WebCore::IDBObjectStoreBackendImpl::put):
825
826 2011-05-18  Chris Rogers  <crogers@google.com>
827
828         Reviewed by James Robinson.
829
830         EqualPowerPanner is not using the correct azimuth range for stereo panning
831         https://bugs.webkit.org/show_bug.cgi?id=61085
832
833         No new tests since audio API is not yet implemented.
834
835         * platform/audio/EqualPowerPanner.cpp:
836         (WebCore::EqualPowerPanner::pan):
837
838 2011-05-18  Yi Shen  <yi.4.shen@nokia.com>
839
840         Reviewed by Andreas Kling.
841
842         [Qt] Enterkey to go to Newline does not work in the text area(in HTML form)
843         https://bugs.webkit.org/show_bug.cgi?id=33179
844
845         Fill the missing key text for the EnterKey event.
846
847         Tests: fast/events/onsearch-enter.html
848
849         * platform/qt/PlatformKeyboardEventQt.cpp:
850         (WebCore::keyTextForKeyEvent):
851
852 2011-05-17  Timothy Hatcher  <timothy@apple.com>
853
854         Update the the context menu to reflect the system search provider on Mac.
855
856         <rdar://problem/9198419>
857
858         Reviewed by Sam Weinig.
859
860         * English.lproj/Localizable.strings: Updated.
861         * Source/WebCore/WebCore.exp.in: Added _wkCopyDefaultSearchProviderDisplayName.
862         * platform/DefaultLocalizationStrategy.cpp:
863         (WebCore::DefaultLocalizationStrategy::contextMenuItemTagSearchWeb): Use wkCopyDefaultSearchProviderDisplayName to
864         create the string.
865         * platform/mac/WebCoreSystemInterface.h: Added wkCopyDefaultSearchProviderDisplayName.
866         * platform/mac/WebCoreSystemInterface.mm: Ditto.
867
868 2011-05-18  Rob Buis  <rbuis@rim.com>
869
870         Reviewed by Nikolas Zimmermann.
871
872         Marker test from ietestcenter fails
873         https://bugs.webkit.org/show_bug.cgi?id=60721
874
875         Change <marker> renderer creation behaviour to always create the renderer. This fixes
876         the problem that no marker is rendered when display=none is set on the <marker>. The
877         specification states that display=none should have no influence on <marker> usage:
878         "The ‘display’ property does not apply to the ‘marker’ element; thus, ..., and ‘marker’
879         elements are available for referencing even when the ‘display’ property on the ‘marker’
880         element or any of its ancestors is set to none."
881
882         Tests: svg/W3C-SVG-1.1-SE/painting-marker-07-f.svg
883                svg/custom/painting-marker-07-f-inherit.svg
884
885         * svg/SVGMarkerElement.h:
886         (WebCore::SVGMarkerElement::rendererIsNeeded):
887
888 2011-05-18  Alexis Menard  <alexis.menard@openbossa.org>, Simon Hausmann  <simon.hausmann@nokia.com>
889
890         Reviewed by Eric Carlson.
891
892         MediaElements fails to load the data in some cases.
893         https://bugs.webkit.org/show_bug.cgi?id=60760
894
895         WebKitWebSourceGStreamer is the interface between WebKit and GStreamer
896         that uses the ResourceHandle API to request data and pass it down. For
897         our builds it is absolutely essential that we have a NetworkingContext
898         available there, in order to get access to the QNetworkAccessManager.
899         No access means we basically cannot load the video. The WebSource gains
900         access to the NetworkingContext through a WebCore::Frame pointer it has.
901
902         MediaPlayerPrivateGStreamer is responsible for propagating a pointer of
903         the WebCore::Frame to the WebKitWebSource in
904         mediaPlayerPrivateSourceChangedCallback. In there we used the MediaPlayer's
905         frameView() accessor to access the frame. However the frameView() member
906         is only set through the render tree's RenderVideo, which is rather unreliable
907         given that some sites create "fake" video tags initially that only become
908         visible later (or never).
909
910         A more reliable way is to simply use the document of the MediaPlayerClient,
911         which is provided at constructor time.
912
913         Test: http/tests/media/media-can-load-when-hidden.html
914
915         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
916         (WebCore::MediaPlayerPrivateGStreamer::sourceChanged):
917
918 2011-05-18  Adrienne Walker  <enne@google.com>
919
920         Reviewed by James Robinson.
921
922         [chromium] Check HUD texture reserve status before using texture
923         https://bugs.webkit.org/show_bug.cgi?id=61082
924
925         This only changes behavior behind a flag, so shouldn't impact any tests.
926
927         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
928         (WebCore::CCHeadsUpDisplay::draw):
929
930 2011-05-18  Oliver Hunt  <oliver@apple.com>
931
932         Reviewed by Sam Weinig.
933
934         JSGlobalObject and some others do GC allocation during initialization, which can cause heap corruption
935         https://bugs.webkit.org/show_bug.cgi?id=61090
936
937         Rather than having Constructor objects create their structure
938         as part of initialisation, we now pass their expected structure
939         in as an argument.  This required fixing the few custom Constructors
940         and the code generator.
941
942         * bindings/js/JSAudioConstructor.cpp:
943         (WebCore::JSAudioConstructor::JSAudioConstructor):
944         * bindings/js/JSAudioConstructor.h:
945         * bindings/js/JSDOMGlobalObject.h:
946         (WebCore::getDOMConstructor):
947           Pass the Constructor objects structure in as an argument
948         * bindings/js/JSImageConstructor.cpp:
949         (WebCore::JSImageConstructor::JSImageConstructor):
950         * bindings/js/JSImageConstructor.h:
951         * bindings/js/JSOptionConstructor.cpp:
952         (WebCore::JSOptionConstructor::JSOptionConstructor):
953         * bindings/js/JSOptionConstructor.h:
954         * bindings/scripts/CodeGeneratorJS.pm:
955
956 2011-05-18  Abhishek Arya  <inferno@chromium.org>
957
958         Reviewed by Beth Dakin.
959
960         Remove removeChild on table caption since destroy call
961         already does that.
962         https://bugs.webkit.org/show_bug.cgi?id=61083
963
964         Test: fast/table/table-captions-child-visible-crash.html
965
966         * rendering/RenderTable.cpp:
967         (WebCore::RenderTable::recalcCaption):
968
969 2011-05-18  Evan Martin  <evan@chromium.org>
970
971         Reviewed by Tony Chang.
972
973         [chromium] make action_derivedsourcesallinone.py quiet
974         https://bugs.webkit.org/show_bug.cgi?id=61081
975
976         In gyp, it's the responsibility of the build system to print what actions are doing;
977         for example, the compile command is generally silent, while the build system prints
978         "compiling".
979
980         Make this program behave like a compiler: silent on success.
981
982         * WebCore.gyp/scripts/action_derivedsourcesallinone.py:
983         delete a print statement.
984
985 2011-05-18  David Kilzer  <ddkilzer@apple.com>
986
987         <http://webkit.org/b/61078> Use toHTTPPipeliningPriority() in initializeMaximumHTTPConnectionCountPerHost()
988
989         Reviewed by Joseph Pecoraro.
990
991         * platform/network/cf/ResourceRequestCFNet.cpp:
992         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Use
993         toHTTPPipeliningPriority() to convert arguments passed to
994         wkSetHTTPPipeliningMaximumPriority() and
995         wkSetHTTPPipeliningMinimumFastLanePriority().
996
997 2011-05-18  Erik Arvidsson  <arv@chromium.org>
998
999         Reviewed by Ojan Vafai.
1000
1001         event.clientX/clientY is 0/0 in a click generated through a label
1002         https://bugs.webkit.org/show_bug.cgi?id=56606
1003
1004         This copies the coordinates from the underlying event to the simulated mouse event if the underlying event
1005         is a mouse event.
1006
1007         This makes us match Firefox and IE.
1008
1009         Test: fast/events/simulated-click-coords.html
1010
1011         * dom/MouseEvent.cpp:
1012         (WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
1013
1014 2011-05-18  Nikolas Zimmermann  <nzimmermann@rim.com>
1015
1016         Not reviewed. Sorted XCode project file.
1017
1018         * WebCore.xcodeproj/project.pbxproj:
1019
1020 2011-05-18  Alexander Pavlov  <apavlov@chromium.org>
1021
1022         Reviewed by Pavel Feldman.
1023
1024         Web Inspector: Non-color CSS property values can get a color-picker
1025         https://bugs.webkit.org/show_bug.cgi?id=61056
1026
1027         * inspector/front-end/CSSKeywordCompletions.js:
1028         (WebInspector.CSSKeywordCompletions.forProperty):
1029         (WebInspector.CSSKeywordCompletions.isColorAwareProperty):
1030         * inspector/front-end/StylesSidebarPane.js:
1031         (WebInspector.StylePropertyTreeElement.prototype.updateTitle):
1032
1033 2011-05-18  Pratik Solanki  <psolanki@apple.com>
1034
1035         Reviewed by Dan Bernstein.
1036
1037         Don't use DEFINE_STATIC_LOCAL with an unsigned
1038         https://bugs.webkit.org/show_bug.cgi?id=61026
1039
1040         * storage/StorageTracker.cpp:
1041         (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase): DEFINE_STATIC_LOCAL is meant
1042         for objects, not unsigned ints. We can just use static here.
1043
1044 2011-05-18  Rob Buis  <rbuis@rim.com>
1045
1046         Reviewed by Nikolas Zimmermann.
1047
1048         NULL deref when SVG elements have table styles 
1049         https://bugs.webkit.org/show_bug.cgi?id=45561
1050
1051         Restrict computed CSS values for SVG display property to block, inline or none.
1052
1053         Tests: svg/custom/display-table-caption-foreignObject.svg
1054                svg/custom/display-table-caption-inherit-foreignObject.xhtml
1055                svg/custom/display-table-caption-inherit-text.xhtml
1056                svg/custom/display-table-caption-text.svg
1057
1058         * css/CSSStyleSelector.cpp:
1059         (WebCore::SVGDisplayPropertyGuard::SVGDisplayPropertyGuard):
1060         (WebCore::SVGDisplayPropertyGuard::~SVGDisplayPropertyGuard):
1061         (WebCore::isAcceptableForSVGElement):
1062         (WebCore::CSSStyleSelector::applyProperty):
1063
1064 2011-05-18  Pavel Feldman  <pfeldman@google.com>
1065
1066         Reviewed by Yury Semikhatsky.
1067
1068         Web Inspector: [REGRESSION] Completion while on a breakpoint is not working.
1069         https://bugs.webkit.org/show_bug.cgi?id=60811
1070
1071         Test: inspector/debugger/debugger-completions-on-call-frame.html
1072
1073         * inspector/InjectedScriptSource.js:
1074         * inspector/front-end/ConsoleView.js:
1075         (WebInspector.ConsoleView.prototype.completions.else.evaluated):
1076         * inspector/front-end/DebuggerPresentationModel.js:
1077         (WebInspector.PresenationCallFrame.prototype.get variables):
1078         * inspector/front-end/ScriptsPanel.js:
1079         (WebInspector.ScriptsPanel.prototype.selectedCallFrameVariables):
1080
1081 2011-05-18  Nikolas Zimmermann  <nzimmermann@rim.com>
1082
1083         Reviewed by Rob Buis.
1084
1085         All animated SVG enum properties are now ints
1086         https://bugs.webkit.org/show_bug.cgi?id=10749
1087
1088         DECLARE/DEFINE_ANIMATED_ENUMERATION created fooBaseVal()/setFooBaseVal() methods that take int parameters, and stored all enum types as integers.
1089         Modify the SVG DOM API to store real enums, and get rid of any int<->enum conversions. It's now impossible to change any enum values to undefined
1090         types, which is the root of several filter security bugs in the past, that were fixed by adding workarounds.
1091         (Usual workaround: svgAttributeChanged(): if fooAttr has been changed from SVG DOM, and if it's an enum, check whether the enum is in range, or fix it up.)
1092
1093         Using a type-safe internal representation for these enum values we can get rid of ugly int<->enum conversions.
1094         A lot of parseMappedAttribute() functions duplicated the code for parsing enum values (eg. userSpaceOnUse/objectBoundingBox unit values, in pattern/filter/mask/etc..)
1095         Add dozens of new SVGPropertyTraits<EnumType> specializations for all enums we expose to JS, and offer static fromString/toString conversion methods in single places.
1096         Use the new SVGPropertyTraits everywhere in svg/.
1097
1098         This also fixes SVG DOM <-> XML DOM synchronization for SVGAnimatedEnumeration types.
1099         Example: <clipPath clipPathUnits="objectBoundingBox">
1100         myClipPath.clipPathUnits.baseVal = SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE;
1101         alert(myClipPath.getAttribute('clipPathUnits')); <- without this patch it says "1", now it says "userSpaceOnUse" as expected, and as other browsers do.
1102         We're now properly converting the enum values to strings.
1103
1104         Add testcases for all SVGAnimatedEnumeration objects used in the SVG DOM API. Found several small bugs:
1105         - SVGFEConvolveMatrix 'edgeMode' SVG DOM <-> XML DOM synchronization was not working, because of a typo: s/operatorAttr/edgeModeAttr
1106         - SVGFEConvolveMatrix was missing an synchronizeProperty() implementation, disabling SVG <-> XML DOM synchronization completly.
1107
1108         Tests: svg/dom/SVGAnimatedEnumeration-SVGClipPathElement.html
1109                svg/dom/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement.html
1110                svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement.html
1111                svg/dom/SVGAnimatedEnumeration-SVGFEColorMatrixElement.html
1112                svg/dom/SVGAnimatedEnumeration-SVGFECompositeElement.html
1113                svg/dom/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement.html
1114                svg/dom/SVGAnimatedEnumeration-SVGFEDisplacementMapElement.html
1115                svg/dom/SVGAnimatedEnumeration-SVGFEMorphologyElement.html
1116                svg/dom/SVGAnimatedEnumeration-SVGFETurbulenceElement.html
1117                svg/dom/SVGAnimatedEnumeration-SVGFilterElement.html
1118                svg/dom/SVGAnimatedEnumeration-SVGGradientElement.html
1119                svg/dom/SVGAnimatedEnumeration-SVGMarkerElement.html
1120                svg/dom/SVGAnimatedEnumeration-SVGMaskElement.html
1121                svg/dom/SVGAnimatedEnumeration-SVGPatternElement.html
1122                svg/dom/SVGAnimatedEnumeration-SVGTextContentElement.html
1123                svg/dom/SVGAnimatedEnumeration-SVGTextPathElement.html
1124
1125         Fixes existing svg/dynamic-update/SVGTextContentElement-svgdom-lengthAdjust-prop.html where I found the bug initially.
1126
1127         * GNUmakefile.list.am: Add svg/properties/SVGAnimatedEnumerationPropertyTearOff.h to build.
1128         * WebCore.gypi: Ditto.
1129         * WebCore.pro: Ditto.
1130         * WebCore.vcproj/WebCore.vcproj: Ditto.
1131         * WebCore.xcodeproj/project.pbxproj: Ditto.
1132         * bindings/scripts/CodeGeneratorV8.pm: Add V8 magic, to avoid ambigious conversion warning in toV8(PassRefPtr<SVGAnimatedEnumeration>).
1133         * platform/graphics/GraphicsTypes.h: Cleanup GradientSpreadMethod, as the SVG dependency is gone.
1134         * platform/graphics/filters/FEBlend.cpp:
1135         (WebCore::FEBlend::apply): Turn early-returns (introduce in security patches a while ago) into ASSERTs, as the underlying bug has been fixed.
1136         * platform/graphics/filters/FEDisplacementMap.cpp:
1137         (WebCore::FEDisplacementMap::apply): Ditto.
1138         * rendering/svg/RenderSVGResourceClipper.h: Remove toUnitType() usage, the clipPathUnits() provided by SVGClipPathElement have the correct enum type now.
1139         (WebCore::RenderSVGResourceClipper::clipPathUnits):
1140         * rendering/svg/RenderSVGResourceFilter.h: Remove toUnitType() usage, the filterUnits()/primitiveUnits() provided by SVGFilterElement have the correct enum type now.
1141         (WebCore::RenderSVGResourceFilter::filterUnits):
1142         (WebCore::RenderSVGResourceFilter::primitiveUnits):
1143         * rendering/svg/RenderSVGResourceGradient.cpp: Add helper method platformSpreadMethodFromSVGType() converting from SVGGradientElement::SVGSpreadMethodType to GradientSpreadMethod (platform).
1144         (WebCore::RenderSVGResourceGradient::applyResource):
1145         * rendering/svg/RenderSVGResourceGradient.h: Ditto.
1146         * rendering/svg/RenderSVGResourceLinearGradient.cpp:
1147         (WebCore::RenderSVGResourceLinearGradient::buildGradient): Use platformSpreadMethodFromSVGType().
1148         * rendering/svg/RenderSVGResourceMarker.h: Remove toUnitType() usage, the markerUnits() provided by SVGMarkerElement have the correct enum type now.
1149         (WebCore::RenderSVGResourceMarker::markerUnits):
1150         * rendering/svg/RenderSVGResourceMasker.h: Remove toUnitType() usage, the maskUnits()/maskContentUnits() provided by SVGMaskElement have the correct enum type now.
1151         (WebCore::RenderSVGResourceMasker::maskUnits):
1152         (WebCore::RenderSVGResourceMasker::maskContentUnits):
1153         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
1154         (WebCore::RenderSVGResourceRadialGradient::buildGradient): Use platformSpreadMethodFromSVGType().
1155         * rendering/svg/SVGRenderTreeAsText.cpp:
1156         (WebCore::operator<<): Use SVGPropertyTraits<SomeSVGEnumType>::toString() to convert from enum to string, remove code duplication.
1157         (WebCore::writeCommonGradientProperties):
1158         * rendering/svg/SVGTextChunkBuilder.cpp:
1159         (WebCore::SVGTextChunkBuilder::addTextChunk): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1160         * rendering/svg/SVGTextLayoutEngine.cpp:
1161         (WebCore::SVGTextLayoutEngine::parentDefinesTextLength): Ditto.
1162         (WebCore::SVGTextLayoutEngine::beginTextPathLayout): Ditto.
1163         * svg/GradientAttributes.h: Change spread method type from platform GradientSpreadMethod to SVGSpreadMethodType.
1164         (WebCore::GradientAttributes::GradientAttributes):
1165         (WebCore::GradientAttributes::spreadMethod):
1166         (WebCore::GradientAttributes::setSpreadMethod):
1167         * svg/SVGAnimatedBoolean.idl: Enable potential exception raising on baseVal setting for the primitive types.
1168         * svg/SVGAnimatedEnumeration.h: Switch from generic SVGAnimatedStaticPropertyTearOff<int> to new SVGAnimatedEnumerationPropertyTearOff<EnumType>.
1169         * svg/SVGAnimatedEnumeration.idl: Enable potential exception raising on baseVal setting for the primitive types.
1170                                           Only SVGAnimatedEnumeration makes use of this if the assigned value is out of range.
1171         * svg/SVGAnimatedInteger.idl: Ditto.
1172         * svg/SVGAnimatedNumber.idl: Ditto.
1173         * svg/SVGAnimatedString.idl: Ditto.
1174         * svg/SVGClipPathElement.cpp:
1175         (WebCore::SVGClipPathElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
1176         * svg/SVGClipPathElement.h:
1177         * svg/SVGComponentTransferFunctionElement.cpp:
1178         (WebCore::SVGComponentTransferFunctionElement::SVGComponentTransferFunctionElement): Initialize type to identity, not unknown, as per spec.
1179         (WebCore::SVGComponentTransferFunctionElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
1180         (WebCore::SVGComponentTransferFunctionElement::transferFunction): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1181         * svg/SVGComponentTransferFunctionElement.h: Remove svgAttributeChanged() method, that verified the enum value is not out of range.
1182                                                      It's not possible anymore for these values to go out of range.
1183         * svg/SVGFEBlendElement.cpp:
1184         (WebCore::SVGFEBlendElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<BlendModeType>::fromString(attr->value()).
1185         (WebCore::SVGFEBlendElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1186         (WebCore::SVGFEBlendElement::build): Ditto.
1187         * svg/SVGFEBlendElement.h: Add SVGPropertyTraits<BlendModeType> specializations.
1188         * svg/SVGFEColorMatrixElement.cpp:
1189         (WebCore::SVGFEColorMatrixElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<ColorMatrixType>::fromString(attr->value()).
1190         (WebCore::SVGFEColorMatrixElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now..
1191         (WebCore::SVGFEColorMatrixElement::build): Ditto.
1192         * svg/SVGFEColorMatrixElement.h: Add SVGPropertyTraits<ColorMatrixType> specializations.
1193         * svg/SVGFECompositeElement.cpp:
1194         (WebCore::SVGFECompositeElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<CompositeOperationType>::fromString(attr->value()).
1195         (WebCore::SVGFECompositeElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1196         (WebCore::SVGFECompositeElement::build): Ditto.
1197         * svg/SVGFECompositeElement.h: Add SVGPropertyTraits<CompositeOperationType> specializations.
1198         * svg/SVGFEConvolveMatrixElement.cpp: Fix typo, edgeMode needs to be associated with SVGNames::edgeModeAttr, not SVGNames::operatorAttr.
1199         (WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EdgeModeType>::fromString(attr->value()).
1200         (WebCore::SVGFEConvolveMatrixElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1201         (WebCore::SVGFEConvolveMatrixElement::synchronizeProperty): Add missing synchronizeProperty() implementation, otherwhise SVG DOM <-> XML DOM is not in sync.
1202         (WebCore::SVGFEConvolveMatrixElement::build): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1203         * svg/SVGFEConvolveMatrixElement.h: Add SVGPropertyTraits<EdgeModeType> specializations.
1204         * svg/SVGFEDisplacementMapElement.cpp:
1205         (WebCore::SVGFEDisplacementMapElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<ChannelSelectorType>::fromString(attr->value()).
1206         (WebCore::SVGFEDisplacementMapElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1207         (WebCore::SVGFEDisplacementMapElement::svgAttributeChanged): Remove range validation for enum types, they are always in range now.
1208         (WebCore::SVGFEDisplacementMapElement::build): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1209         * svg/SVGFEDisplacementMapElement.h: Add SVGPropertyTraits<ChannelSelectorType> specializations.
1210         * svg/SVGFEMorphologyElement.cpp:
1211         (WebCore::SVGFEMorphologyElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<MorphologyOperatorType>::fromString(attr->value()).
1212         (WebCore::SVGFEMorphologyElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1213         (WebCore::SVGFEMorphologyElement::build): Ditto.
1214         * svg/SVGFEMorphologyElement.h: Add SVGPropertyTraits<MorphologyOperatorType> specializations.
1215         * svg/SVGFETurbulenceElement.cpp:
1216         (WebCore::SVGFETurbulenceElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGStitchOptions/TurbulenceType>::fromString(attr->value()).
1217         (WebCore::SVGFETurbulenceElement::setFilterEffectAttribute): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1218         (WebCore::SVGFETurbulenceElement::build): Ditto.
1219         * svg/SVGFETurbulenceElement.h: Add SVGPropertyTraits<SVGStitchOptions/TurbulenceType> specializations.
1220         * svg/SVGFilterElement.cpp:
1221         (WebCore::SVGFilterElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGUnitType>::fromString(attr->value()).
1222         * svg/SVGFilterElement.h:
1223         * svg/SVGGradientElement.cpp:
1224         (WebCore::SVGGradientElement::SVGGradientElement): Missing spread method default initialization: set it to 'pad' as per spec.
1225         (WebCore::SVGGradientElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGUnitType/SVGSpreadMethodType>::fromString(attr->value()).
1226         * svg/SVGGradientElement.h: Add SVGPropertyTraits<SVGSpreadMethodType> specializations.
1227         * svg/SVGLinearGradientElement.cpp:
1228         (WebCore::SVGLinearGradientElement::collectGradientAttributes): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1229         * svg/SVGMarkerElement.cpp:
1230         (WebCore::SVGMarkerElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
1231         (WebCore::SVGMarkerElement::synchronizeOrientType): Add a custom synchronization method, that handles orientType/orientAngle -> orientAttr synchronization, which is special
1232                                                             as it depends on to other SVG DOM objects (SVGAnimatedAngle and SVGAnimatedEnumeration). All covered by new tests.
1233         (WebCore::SVGMarkerElement::orientTypeAnimated): Custom tear off creation method, which would usually be generated by the DECLARE_ANIMATED_... macros.
1234         * svg/SVGMarkerElement.h: Add SVGPropertyTraits<SVGMarkerUnitsType/SVGMarkerOrientType> specializations.
1235         (WebCore::SVGMarkerElement::orientType): Add custom property handling for the 'orientType' SVGAnimatedEnumeration object, as it has special demands, based on 'orientAngle'.
1236         (WebCore::SVGMarkerElement::orientTypeBaseValue): Ditto.
1237         (WebCore::SVGMarkerElement::setOrientTypeBaseValue): Ditto.
1238         * svg/SVGMaskElement.cpp:
1239         (WebCore::SVGMaskElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
1240         * svg/SVGMaskElement.h:
1241         * svg/SVGPatternElement.cpp:
1242         (WebCore::SVGPatternElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<EnumType>::fromString(attr->value()).
1243         * svg/SVGPatternElement.h:
1244         * svg/SVGRadialGradientElement.cpp:
1245         (WebCore::SVGRadialGradientElement::collectGradientAttributes): Remove int->enum casting for SVGAnimatedEnumeration types, they are enums now.
1246         * svg/SVGTextContentElement.cpp:
1247         (WebCore::SVGTextContentElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGLengthAdjustType>::fromString(attr->value()).
1248         * svg/SVGTextContentElement.h: Add SVGPropertyTraits<SVGLengthAdjustType> specializations.
1249         * svg/SVGTextPathElement.cpp:
1250         (WebCore::SVGTextPathElement::parseMappedAttribute): Convert attribute parsing to use SVGPropertyTraits<SVGTextPathMethodType/SVGTextPathSpacingType>::fromString(attr->value()).
1251         * svg/SVGTextPathElement.h: Add SVGPropertyTraits<SVGTextPathMethodType/SVGTextPathSpacingType> specializations.
1252         * svg/SVGUnitTypes.h: Add SVGPropertyTraits<SVGUnitType> specializations.
1253         * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h: Added. SVGAnimatedEnumerationPropertyTearOff inherits from SVGAnimatedStaticPropertyTearOff<int>.
1254                                                                   SVGAnimatedEnumeration remains a typedef to SVGAnimatedStaticPropertyTearOff<int>, to have a common base
1255                                                                   class for all enum types. This special tear off object, overrides setBaseVal, to verify the incoming int
1256                                                                   is within the enum range, otherwhise raise an SVG DOM exception. This makes it impossible to make any of
1257                                                                   the enums go out of range anymore (which lead to security bugs in the past).
1258         (WebCore::SVGAnimatedEnumerationPropertyTearOff::setBaseVal):
1259         (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
1260         (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
1261         * svg/properties/SVGAnimatedStaticPropertyTearOff.h:
1262         (WebCore::SVGAnimatedStaticPropertyTearOff::setBaseVal): Made this method virtual, to SVGAnimatedEnumerationPropertyTearOff can override the default behaviour. Also added an ExceptionCode param.
1263         (WebCore::SVGAnimatedStaticPropertyTearOff::~SVGAnimatedStaticPropertyTearOff):
1264
1265 2011-05-18  Kinuko Yasuda  <kinuko@chromium.org>
1266
1267         Reviewed by David Levin.
1268
1269         Expose webkitStorageInfo.requestQuota() for Quota API if QUOTA flag is enabled
1270         https://bugs.webkit.org/show_bug.cgi?id=59681
1271
1272         Test: storage/storageinfo-request-quota.html
1273
1274         * CMakeLists.txt:
1275         * CodeGenerators.pri:
1276         * DerivedSources.cpp:
1277         * DerivedSources.make:
1278         * GNUmakefile.am:
1279         * GNUmakefile.list.am:
1280         * WebCore.gypi:
1281         * WebCore.vcproj/WebCore.vcproj:
1282         * WebCore.xcodeproj/project.pbxproj:
1283         * storage/StorageInfo.idl: Added requestQuota().
1284         * storage/StorageInfoQuotaCallback.idl: Added.
1285
1286 2011-05-18  Renata Hodovan  <reni@webkit.org>
1287
1288         Reviewed by Nikolas Zimmermann.
1289
1290         Apply the ParallelJobs support to FEGaussianBlur
1291         https://bugs.webkit.org/show_bug.cgi?id=61049
1292
1293         The Gaussian blur filter of SVG can consume lots of resources if it is
1294         applied to a large area. The computation can be distributed to multiple
1295         cores if the architecture supports.
1296         The average performance progression is about 15% on dual-core machines.
1297
1298         Developed in cooperation with Gabor Loki and Zoltan Herczeg.
1299
1300
1301         * platform/graphics/filters/FEGaussianBlur.cpp:
1302         (WebCore::FEGaussianBlur::platformApplyWorker):
1303         (WebCore::FEGaussianBlur::platformApply):
1304         * platform/graphics/filters/FEGaussianBlur.h:
1305
1306 2011-05-18  Pavel Feldman  <pfeldman@google.com>
1307
1308         Reviewed by Yury Semikhatsky.
1309
1310         Web Inspector: make parentId for frame optional.
1311         https://bugs.webkit.org/show_bug.cgi?id=61032
1312
1313         * inspector/Inspector.json:
1314         * inspector/InspectorPageAgent.cpp:
1315         (WebCore::InspectorPageAgent::buildObjectForFrame):
1316         * inspector/front-end/ResourceTreeModel.js:
1317         (WebInspector.ResourceTreeModel.prototype._addFrame):
1318
1319 2011-05-18  Gabor Loki  <loki@webkit.org>
1320
1321         Reviewed by Nikolas Zimmermann.
1322
1323         Apply the ParallelJobs support to FELighting
1324         https://bugs.webkit.org/show_bug.cgi?id=61048
1325
1326         The lighting filter of SVG can consume lots of resources if it is
1327         applied to a large area. The computation can be distributed to multiple
1328         cores if the architecture supports.
1329         The average performance progression is 10-20% on dual-core machines.
1330
1331         Developed in cooperation with Zoltan Herczeg.
1332
1333         * platform/graphics/filters/FELighting.cpp:
1334         (WebCore::FELighting::platformApplyGenericPaint):
1335         (WebCore::FELighting::platformApplyGenericWorker):
1336         (WebCore::FELighting::platformApplyGeneric):
1337         * platform/graphics/filters/FELighting.h:
1338         * platform/graphics/filters/arm/FELightingNEON.cpp:
1339         (WebCore::FELighting::platformApplyNeonWorker):
1340         * platform/graphics/filters/arm/FELightingNEON.h:
1341         (WebCore::FELighting::platformApplyNeon):
1342
1343 2011-05-18  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1344
1345         Reviewed by Andreas Kling.
1346
1347         [Qt] Fix tst_QWebFrame::getSetStaticProperty() autotest
1348         https://bugs.webkit.org/show_bug.cgi?id=60984
1349
1350         The code for converting objects to QVariantMap was causing exception,
1351         that was "leaking" to the next evaluation. One situation was reading
1352         the property 'localStorage' when we do not have a proper security
1353         origin, which throws a SECURITY_ERR.
1354
1355         Now, we will simply not include on the QVariantMap those properties,
1356         and make sure that we clean the exception if necessary.
1357
1358         * bridge/qt/qt_runtime.cpp:
1359         (JSC::Bindings::convertValueToQVariantMap):
1360         Extracted function that performs conversion from JSObject to a QVariantMap. This
1361         functions makes sure that exception is clean after its execution.
1362
1363         (JSC::Bindings::convertValueToQVariant):
1364         Use the previous function. Add a comment explaining the choice of distance value.
1365
1366 2011-05-18  Ilya Tikhonovsky  <loislo@chromium.org>
1367
1368         Reviewed by Yury Semikhatsky.
1369
1370         Web Inspector: scripts panel file selector element doesn't track keyboard events 
1371         https://bugs.webkit.org/show_bug.cgi?id=61047
1372
1373         * inspector/front-end/ScriptsPanel.js:
1374         (WebInspector.ScriptsPanel):
1375
1376 2011-05-16  Pavel Podivilov  <podivilov@chromium.org>
1377
1378         Reviewed by Yury Semikhatsky.
1379
1380         Web Inspector: refactoring: ScriptDebugListener::didParseSource has too many parameters.
1381         https://bugs.webkit.org/show_bug.cgi?id=60900
1382
1383         * bindings/js/ScriptDebugServer.cpp:
1384         (WebCore::ScriptDebugServer::dispatchDidParseSource):
1385         * bindings/v8/ScriptDebugServer.cpp:
1386         (WebCore::ScriptDebugServer::dispatchDidParseSource):
1387         * inspector/InspectorDebuggerAgent.cpp:
1388         (WebCore::InspectorDebuggerAgent::getScriptSource):
1389         (WebCore::InspectorDebuggerAgent::didParseSource):
1390         * inspector/InspectorDebuggerAgent.h:
1391         * inspector/ScriptDebugListener.h:
1392         (WebCore::ScriptDebugListener::Script::Script):
1393
1394 2011-05-18  Alexander Pavlov  <apavlov@chromium.org>
1395
1396         Reviewed by Pavel Feldman.
1397
1398         Web Inspector: model-based CSS editing does not update @import-ed stylesheet resources
1399         https://bugs.webkit.org/show_bug.cgi?id=60966
1400
1401         Imported stylesheets didn't use to be returned by InspectorCSSAgent.
1402
1403         * inspector/InspectorCSSAgent.cpp:
1404         (WebCore::InspectorCSSAgent::getAllStyleSheets):
1405         (WebCore::InspectorCSSAgent::collectStyleSheets):
1406         * inspector/InspectorCSSAgent.h:
1407
1408 2011-05-18  Pavel Feldman  <pfeldman@google.com>
1409
1410         Reviewed by Yury Semikhatsky.
1411
1412         Web Inspector: make "Id" suffixes use consistent case.
1413         https://bugs.webkit.org/show_bug.cgi?id=61028
1414
1415         * inspector/InjectedScriptSource.js:
1416         * inspector/Inspector.json:
1417         * inspector/InspectorConsoleAgent.cpp:
1418         (WebCore::InspectorConsoleAgent::addMessageToConsole):
1419         * inspector/InspectorConsoleAgent.h:
1420         * inspector/InspectorConsoleInstrumentation.h:
1421         (WebCore::InspectorInstrumentation::addMessageToConsole):
1422         * inspector/InspectorDebuggerAgent.cpp:
1423         (WebCore::parseLocation):
1424         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
1425         (WebCore::InspectorDebuggerAgent::editScriptSource):
1426         (WebCore::InspectorDebuggerAgent::getScriptSource):
1427         (WebCore::InspectorDebuggerAgent::didParseSource):
1428         * inspector/InspectorDebuggerAgent.h:
1429         * inspector/InspectorInstrumentation.cpp:
1430         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
1431         * inspector/InspectorInstrumentation.h:
1432         * inspector/InspectorResourceAgent.cpp:
1433         (WebCore::buildObjectForResourceResponse):
1434         * inspector/ScriptDebugListener.h:
1435         * inspector/front-end/DebuggerModel.js:
1436         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
1437         (WebInspector.DebuggerModel.prototype.queryScripts):
1438         (WebInspector.DebuggerModel.prototype.editScriptSource):
1439         (WebInspector.DebuggerModel.prototype._didEditScriptSource):
1440         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
1441         (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
1442         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
1443         * inspector/front-end/DebuggerPresentationModel.js:
1444         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
1445         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
1446         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
1447         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
1448         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
1449         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
1450         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
1451         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
1452         (WebInspector.PresenationCallFrame):
1453         * inspector/front-end/NetworkManager.js:
1454         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
1455         * inspector/front-end/Script.js:
1456         (WebInspector.Script):
1457         (WebInspector.Script.prototype.requestSource):
1458         (WebInspector.Script.prototype.editSource):
1459         * inspector/front-end/SourceFile.js:
1460         (WebInspector.SourceFile.prototype.forceLoadContent):
1461         (WebInspector.SourceFile.prototype._concatenateScriptsContent):
1462         (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation):
1463         (WebInspector):
1464
1465 2011-05-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1466
1467         Unreviewed, rolling out r86747.
1468         http://trac.webkit.org/changeset/86747
1469         https://bugs.webkit.org/show_bug.cgi?id=61039
1470
1471         Breaks JSC debugger tests. (Requested by pfeldman on #webkit).
1472
1473         * inspector/InjectedScriptSource.js:
1474         ():
1475         * inspector/Inspector.json:
1476         * inspector/InspectorConsoleAgent.cpp:
1477         (WebCore::InspectorConsoleAgent::addMessageToConsole):
1478         * inspector/InspectorConsoleAgent.h:
1479         * inspector/InspectorConsoleInstrumentation.h:
1480         (WebCore::InspectorInstrumentation::addMessageToConsole):
1481         * inspector/InspectorDebuggerAgent.cpp:
1482         (WebCore::parseLocation):
1483         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
1484         (WebCore::InspectorDebuggerAgent::editScriptSource):
1485         (WebCore::InspectorDebuggerAgent::getScriptSource):
1486         (WebCore::InspectorDebuggerAgent::didParseSource):
1487         * inspector/InspectorDebuggerAgent.h:
1488         * inspector/InspectorInstrumentation.cpp:
1489         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
1490         * inspector/InspectorInstrumentation.h:
1491         * inspector/InspectorResourceAgent.cpp:
1492         (WebCore::buildObjectForResourceResponse):
1493         * inspector/ScriptDebugListener.h:
1494         * inspector/front-end/DebuggerModel.js:
1495         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
1496         (WebInspector.DebuggerModel.prototype.queryScripts):
1497         (WebInspector.DebuggerModel.prototype.editScriptSource):
1498         (WebInspector.DebuggerModel.prototype._didEditScriptSource):
1499         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
1500         (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
1501         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
1502         * inspector/front-end/DebuggerPresentationModel.js:
1503         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
1504         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
1505         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
1506         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
1507         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
1508         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
1509         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
1510         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
1511         (WebInspector.PresenationCallFrame):
1512         * inspector/front-end/NetworkManager.js:
1513         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
1514         * inspector/front-end/Script.js:
1515         (WebInspector.Script):
1516         (WebInspector.Script.prototype.requestSource):
1517         (WebInspector.Script.prototype.editSource):
1518         * inspector/front-end/SourceFile.js:
1519         (WebInspector.SourceFile.prototype.forceLoadContent):
1520         (WebInspector.SourceFile.prototype._concatenateScriptsContent):
1521         (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation):
1522         (WebInspector):
1523
1524 2011-05-18  Abhishek Arya  <inferno@chromium.org>
1525
1526         Reviewed by Dirk Schulze.
1527
1528         When SMIL element is getting removed, make sure to remove it
1529         from target's animation elements list.
1530         https://bugs.webkit.org/show_bug.cgi?id=60980
1531
1532         Test: svg/animations/smil-element-not-removed-crash.html
1533
1534         * svg/animation/SVGSMILElement.cpp:
1535         (WebCore::SVGSMILElement::~SVGSMILElement):
1536
1537 2011-05-18  Pavel Feldman  <pfeldman@google.com>
1538
1539         Reviewed by Yury Semikhatsky.
1540
1541         Web Inspector: make "Id" suffixes use consistent case.
1542         https://bugs.webkit.org/show_bug.cgi?id=61028
1543
1544         * inspector/InjectedScriptSource.js:
1545         * inspector/Inspector.json:
1546         * inspector/InspectorConsoleAgent.cpp:
1547         (WebCore::InspectorConsoleAgent::addMessageToConsole):
1548         * inspector/InspectorConsoleAgent.h:
1549         * inspector/InspectorConsoleInstrumentation.h:
1550         (WebCore::InspectorInstrumentation::addMessageToConsole):
1551         * inspector/InspectorDebuggerAgent.cpp:
1552         (WebCore::parseLocation):
1553         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
1554         (WebCore::InspectorDebuggerAgent::editScriptSource):
1555         (WebCore::InspectorDebuggerAgent::getScriptSource):
1556         (WebCore::InspectorDebuggerAgent::didParseSource):
1557         * inspector/InspectorDebuggerAgent.h:
1558         * inspector/InspectorInstrumentation.cpp:
1559         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
1560         * inspector/InspectorInstrumentation.h:
1561         * inspector/InspectorResourceAgent.cpp:
1562         (WebCore::buildObjectForResourceResponse):
1563         * inspector/ScriptDebugListener.h:
1564         * inspector/front-end/DebuggerModel.js:
1565         (WebInspector.DebuggerModel.prototype.scriptForSourceID):
1566         (WebInspector.DebuggerModel.prototype.queryScripts):
1567         (WebInspector.DebuggerModel.prototype.editScriptSource):
1568         (WebInspector.DebuggerModel.prototype._didEditScriptSource):
1569         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
1570         (WebInspector.DebuggerDispatcher.prototype.scriptParsed):
1571         (WebInspector.DebuggerDispatcher.prototype.breakpointResolved):
1572         * inspector/front-end/DebuggerPresentationModel.js:
1573         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
1574         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
1575         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
1576         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
1577         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
1578         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
1579         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
1580         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
1581         (WebInspector.PresenationCallFrame):
1582         * inspector/front-end/NetworkManager.js:
1583         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
1584         * inspector/front-end/Script.js:
1585         (WebInspector.Script):
1586         (WebInspector.Script.prototype.requestSource):
1587         (WebInspector.Script.prototype.editSource):
1588         * inspector/front-end/SourceFile.js:
1589         (WebInspector.SourceFile.prototype.forceLoadContent):
1590         (WebInspector.SourceFile.prototype._concatenateScriptsContent):
1591         (WebInspector.SourceMapping.prototype._sourceLocationToScriptLocation):
1592         (WebInspector):
1593
1594 2011-05-18  Pavel Feldman  <pfeldman@google.com>
1595
1596         Reviewed by Yury Semikhatsky.
1597
1598         Web Inspector: do not reveal line -1 when navigating to anchor without line specified.
1599         https://bugs.webkit.org/show_bug.cgi?id=60971
1600
1601         * inspector/front-end/ResourcesPanel.js:
1602         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
1603         * inspector/front-end/ScriptsPanel.js:
1604         (WebInspector.ScriptsPanel.prototype.showAnchorLocation.):
1605         (WebInspector.ScriptsPanel.prototype.showAnchorLocation):
1606         * inspector/front-end/inspector.js:
1607         (WebInspector._showAnchorLocation):
1608
1609 2011-05-18  Kent Tamura  <tkent@chromium.org>
1610
1611         Reviewed by Hajime Morita.
1612
1613         valueMissing validity for <select> is lame when selecting a value by a key operation
1614         https://bugs.webkit.org/show_bug.cgi?id=61021
1615
1616         We missed updating validity in case that SelectElement::defaultEventHandler
1617         update selections.  So, SelectElement::setSelectedIndex() updates validity.
1618
1619         * dom/SelectElement.cpp:
1620         (WebCore::SelectElement::setSelectedIndex): Call SelectElement::updateValidity().
1621         * html/HTMLSelectElement.cpp:
1622         (WebCore::HTMLSelectElement::setSelectedIndex):
1623           Remove unnecessary setNeedsValidityCheck() call.
1624           SelectElement::setSlectedIndex() calls it.
1625         (WebCore::HTMLSelectElement::setSelectedIndexByUser): ditto.
1626
1627 2011-05-17  Mikhail Naganov  <mnaganov@chromium.org>
1628
1629         Reviewed by Pavel Feldman.
1630
1631         Web Inspector: [Chromium] Enable detailed heap snapshots by default.
1632         https://bugs.webkit.org/show_bug.cgi?id=60286
1633
1634         * inspector/front-end/ProfilesPanel.js:
1635
1636 2011-05-17  Mikhail Naganov  <mnaganov@chromium.org>
1637
1638         Reviewed by Pavel Feldman.
1639
1640         Web Inspector: [Chromium] Make retaining paths list of the Detailed
1641         heap snapshots view resizable.
1642         https://bugs.webkit.org/show_bug.cgi?id=60960
1643
1644         * inspector/front-end/DetailedHeapshotView.js:
1645         (WebInspector.DetailedHeapshotView.prototype.resize):
1646         (WebInspector.DetailedHeapshotView.prototype._startRetainersHeaderDragging):
1647         (WebInspector.DetailedHeapshotView.prototype._retainersHeaderDragging):
1648         (WebInspector.DetailedHeapshotView.prototype._endRetainersHeaderDragging):
1649         (WebInspector.DetailedHeapshotView.prototype._updateRetainmentViewHeight):
1650         * inspector/front-end/heapProfiler.css:
1651
1652 2011-05-16  Jeremy Noble  <jer.noble@apple.com>
1653
1654         Reviewed by Darin Adler.
1655
1656         Disable keyboard input (with exceptions) in full-screen mode.
1657         https://bugs.webkit.org/show_bug.cgi?id=60943
1658
1659         Tests: fullscreen/full-screen-keyboard-disabled.html
1660                fullscreen/full-screen-keyboard-enabled.html
1661
1662         * page/EventHandler.cpp:
1663         (WebCore::EventHandler::isKeyEventAllowedInFullScreen): Added.  Implements the 
1664             list of allowed keyboard events in the proposed API.
1665         (WebCore::EventHandler::keyEvent): Discard events which are not allowed in
1666             full-screen mode.
1667         * page/EventHandler.h:
1668
1669 2011-05-17  Nikolas Zimmermann  <nzimmermann@rim.com>
1670
1671         Reviewed by Dirk Schulze.
1672
1673         Refactor TextRun creation
1674         https://bugs.webkit.org/show_bug.cgi?id=60255
1675
1676         Add constructTextRun() methods to RenderBlock/InlineTextBox and use it in various places in rendering/.
1677         The long-term goal is to remove the ugly eight parameters catch-it-all TextRun constructor, and
1678         replace it with explicit setters/getters. To avoid expanding dozens of callsites, when removing
1679         the catch-it-all constructor, these helper functions are introduced, which hide the details of
1680         creating a TextRun.
1681
1682         Furthermore it will be used to remove the platform layering violation, that TextRun stores
1683         RenderObject pointers for the sake of SVG Fonts support, see bug 60254.
1684
1685         No change in functionaliy, no new tests.
1686
1687         * rendering/EllipsisBox.cpp:
1688         (WebCore::EllipsisBox::paint):
1689         (WebCore::EllipsisBox::selectionRect):
1690         (WebCore::EllipsisBox::paintSelection):
1691         * rendering/InlineTextBox.cpp:
1692         (WebCore::InlineTextBox::selectionRect):
1693         (WebCore::InlineTextBox::paint):
1694         (WebCore::InlineTextBox::paintSelection):
1695         (WebCore::InlineTextBox::paintCompositionBackground):
1696         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
1697         (WebCore::InlineTextBox::paintTextMatchMarker):
1698         (WebCore::InlineTextBox::computeRectForReplacementMarker):
1699         (WebCore::InlineTextBox::offsetForPosition):
1700         (WebCore::InlineTextBox::positionForOffset):
1701         (WebCore::InlineTextBox::constructTextRun):
1702         * rendering/InlineTextBox.h:
1703         * rendering/RenderBlock.cpp:
1704         (WebCore::RenderBlock::constructTextRunAllowTrailingExpansion):
1705         * rendering/RenderBlock.h:
1706         * rendering/RenderEmbeddedObject.cpp:
1707         (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
1708         * rendering/RenderFileUploadControl.cpp:
1709         (WebCore::RenderFileUploadControl::paintObject):
1710         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
1711         * rendering/RenderImage.cpp:
1712         (WebCore::RenderImage::setImageSizeForAltText):
1713         (WebCore::RenderImage::paintReplaced):
1714         * rendering/RenderListBox.cpp:
1715         (WebCore::RenderListBox::updateFromElement):
1716         * rendering/RenderTextControl.cpp:
1717         (WebCore::RenderTextControl::getAvgCharWidth):
1718
1719 2011-05-17  Jeremy Noble  <jer.noble@apple.com>
1720
1721         Reviewed by Darin Adler.
1722
1723         Removing a full-screen element or ancestor from the DOM should trigger exiting full-screen mode.
1724         https://bugs.webkit.org/show_bug.cgi?id=60997
1725
1726         Tests: fullscreen/full-screen-remove-ancestor.html
1727                fullscreen/full-screen-remove-children.html
1728                fullscreen/full-screen-remove.html
1729
1730         * dom/Document.cpp:
1731         (WebCore::Document::fullScreenChangeDelayTimerFired): If the target node was removed from the document
1732             make sure to message the documentElement() as well.
1733         (WebCore::Document::fullScreenElementRemoved): Cancel full screen mode.
1734
1735 2011-05-17  Yuta Kitamura  <yutak@chromium.org>
1736
1737         Reviewed by Kent Tamura.
1738
1739         WebSocket: Add CLOSING state
1740         https://bugs.webkit.org/show_bug.cgi?id=60878
1741
1742         No new tests are added because there is no change in functionality.
1743
1744         * platform/network/SocketStreamHandleBase.h:
1745         * websockets/WebSocket.h:
1746         * websockets/WebSocket.idl:
1747
1748 2011-05-16  MORITA Hajime  <morrita@google.com>
1749
1750         Reviewed by Dimitri Glazkov.
1751
1752         [Refactoring] ShadowContentElement should be part of dom/
1753         https://bugs.webkit.org/show_bug.cgi?id=59117
1754
1755         - Moved html/shadow/ShadowContentElement.h to dom/ShadowContentElement.h
1756         - Pulled ShadowContentElement up to a subclass of StyledElement, from HTMLDivElement
1757         - Added ShadowContentElement.cpp
1758         - Extracted ShadowContentSelector.{cpp,h} from ShadowRoot.{cpp,h}
1759         
1760         No new tests, no behavior change.
1761
1762         * CMakeLists.txt:
1763         * GNUmakefile.list.am:
1764         * WebCore.gypi:
1765         * WebCore.pro:
1766         * WebCore.vcproj/WebCore.vcproj:
1767         * WebCore.xcodeproj/project.pbxproj:
1768         * dom/DOMAllInOne.cpp: Added new ShadowContentSelector.cpp and ShadowContentElement.cpp.
1769         * dom/Node.h: 
1770         (WebCore::Node::forceReattach): Moved from static local function to share between classes.
1771         * dom/ShadowContentElement.cpp: Copied from Source/WebCore/html/shadow/ShadowContentElement.h.
1772         (WebCore::ShadowContentElement::attach):
1773         * dom/ShadowContentElement.h: Copied from Source/WebCore/html/shadow/ShadowContentElement.h.
1774         (WebCore::ShadowContentElement::ShadowContentElement):
1775         (WebCore::ShadowContentElement::isShadowBoundary):
1776         (WebCore::ShadowContentElement::rendererIsNeeded):
1777         (WebCore::ShadowContentElement::createRenderer):
1778         * dom/ShadowContentSelector.cpp: Copied from Source/WebCore/html/shadow/ShadowContentElement.h.
1779         (WebCore::ShadowContentSelector::ShadowContentSelector):
1780         (WebCore::ShadowContentSelector::~ShadowContentSelector):
1781         (WebCore::ShadowContentSelector::attachChildrenFor):
1782         * dom/ShadowContentSelector.h: Renamed from Source/WebCore/html/shadow/ShadowContentElement.h.
1783         (WebCore::ShadowContentSelector::shadowRoot):
1784         (WebCore::ShadowContentSelector::activeElement):
1785         (WebCore::ShadowContentSelector::currentInstance):
1786         * dom/ShadowRoot.cpp:
1787         (WebCore::ShadowRoot::recalcStyle):
1788         * html/HTMLDetailsElement.cpp:
1789         (WebCore::DetailsContentElement::DetailsContentElement):
1790         (WebCore::DetailsSummaryElement::DetailsSummaryElement):
1791         * html/HTMLSummaryElement.cpp:
1792         (WebCore::SummaryContentElement::SummaryContentElement):
1793
1794 2011-05-17  Cris Neckar  <cdn@chromium.org>
1795
1796         Reviewed by Adam Barth.
1797
1798         Clear the image from ImageLoader rather than clearing the ImageLoader in HTMLObjectElement::renderFallbackContent.
1799         https://bugs.webkit.org/show_bug.cgi?id=61005
1800
1801         Test: http/tests/loading/nested_bad_objects.php
1802
1803         * html/HTMLObjectElement.cpp:
1804         (WebCore::HTMLObjectElement::renderFallbackContent):
1805
1806 2011-05-17  Chris Rogers  <crogers@google.com>
1807
1808         Reviewed by Kenneth Russell.
1809
1810         Make sure that AudioNode gets re-enabled after having been disconnected and re-connected.
1811         https://bugs.webkit.org/show_bug.cgi?id=60995
1812
1813         No new tests since audio API is not yet implemented.
1814
1815         * webaudio/AudioNode.cpp:
1816         (WebCore::AudioNode::ref):
1817
1818 2011-05-17  Brady Eidson  <beidson@apple.com>
1819
1820         Reviewed by Darin Adler.
1821
1822         <rdar://problem/9366728> and https://webkit.org/b/60796
1823         Crash when code inside a ResourceLoadDelegate method calls [WebView stopLoading:]
1824
1825         Break up ResourceLoader::didCancel() into willCancel() and didCancel(), and making them pure virtual.
1826         This change has the following benefits:
1827           - Managing ResourceLoader state can be in the base class; Subclasses no longer need to protect
1828             themselves, check these variables as often, or ASSERT them.
1829           - ResourceLoader subclasses no longer have to call the base class ::didCancel
1830           - ResourceLoader::cancel becomes more capable of handling reentrancy with the design that the 
1831             cancellation is completed inside the last call.
1832
1833         No new tests - No change in behavior for previous tests, and new test would require API usage outside
1834         the scope of DumpRenderTree.
1835
1836         * loader/ResourceLoader.cpp:
1837         (WebCore::ResourceLoader::ResourceLoader):
1838         (WebCore::ResourceLoader::cancel): Moved from ResourceLoader::didCancel, and does all of that same work
1839           except it interposes calls to "willCancel" and "didCancel" as required to maintain the same behavior.
1840         * loader/ResourceLoader.h: Added pure virtual didCancel() and willCancel().
1841
1842         Split-up into willCancel() and didCancel(), based on when the base class didCancel() used to be called:
1843         * loader/MainResourceLoader.cpp:
1844         (WebCore::MainResourceLoader::willCancel):
1845         (WebCore::MainResourceLoader::didCancel):
1846         * loader/MainResourceLoader.h:
1847
1848         Split-up into willCancel() and didCancel(), based on when the "reached terminal state" flag used to be checked:
1849         * loader/NetscapePlugInStreamLoader.cpp:
1850         (WebCore::NetscapePlugInStreamLoader::didReceiveResponse): Call the entry point cancel() instead of the old didCancel()
1851         (WebCore::NetscapePlugInStreamLoader::willCancel):
1852         (WebCore::NetscapePlugInStreamLoader::didCancel):
1853         * loader/NetscapePlugInStreamLoader.h:
1854
1855         Split-up into willCancel() and didCancel(), based on when the "reached terminal state" flag used to be checked:
1856         * loader/SubresourceLoader.cpp:
1857         (WebCore::SubresourceLoader::willCancel):
1858         (WebCore::SubresourceLoader::didCancel):
1859         * loader/SubresourceLoader.h:
1860
1861 2011-05-17  Nat Duca  <nduca@chromium.org>
1862
1863         Reviewed by James Robinson.
1864
1865         [chromium] Always set layerRenderer, even on non-drawn-layers
1866         https://bugs.webkit.org/show_bug.cgi?id=60977
1867
1868         This is a defensive fixe for crbug.com/82799, in which
1869         a RenderLayer could not prepare itself because its owning layerImpl
1870         had no associated layerRenderer. The underlying issue is that we
1871         sometimes put renderSurfaces onto the list that won't actually render.
1872         For now, the priority is to reduce fragility so that invisible layers
1873         dont lead to crashers. We do this by being more agressive about 
1874         binding CCLayerImpls to the LayerRenderer, doing it all the time rather
1875         than only when we think it will get rendered.
1876
1877         * platform/graphics/chromium/LayerRendererChromium.cpp:
1878         (WebCore::LayerRendererChromium::paintLayerContents):
1879
1880 2011-05-17  Anders Carlsson  <andersca@apple.com>
1881
1882         Fix the clang build.
1883
1884         * rendering/RenderText.h:
1885         (WebCore::RenderText::nodeAtPoint):
1886         nodeAtPoint should take a const IntPoint reference.
1887
1888 2011-05-17  Erik Arvidsson  <arv@chromium.org>
1889
1890         Reviewed by Ryosuke Niwa.
1891
1892         document.activeElement doesn't point to the focused frame
1893         https://bugs.webkit.org/show_bug.cgi?id=49509
1894
1895         This makes us match IE and Firefox and there is an ongoing WHATWG discussion to make the spec match this.
1896
1897         Test: fast/dom/HTMLDocument/active-element-frames.html
1898
1899         * html/HTMLDocument.cpp:
1900         (WebCore::HTMLDocument::activeElement): Walk up the frame tree from the focusedFrame to find the active frame if any.
1901
1902 2011-05-17  Emil A Eklund  <eae@chromium.org>
1903
1904         Reviewed by Eric Seidel.
1905
1906         Change nodeAtPoint to take IntPoint instead of int x, int y
1907         https://bugs.webkit.org/show_bug.cgi?id=60663
1908
1909         Change nodeAtPoint to take a single const IntPoint& instead of a pair of
1910         ints for the location.
1911
1912         Covered by existing tests.
1913
1914         * platform/graphics/FloatPoint.h:
1915         (WebCore::flooredIntPoint):
1916         * rendering/EllipsisBox.cpp:
1917         (WebCore::EllipsisBox::nodeAtPoint):
1918         * rendering/EllipsisBox.h:
1919         * rendering/InlineBox.cpp:
1920         (WebCore::InlineBox::nodeAtPoint):
1921         * rendering/InlineBox.h:
1922         * rendering/InlineFlowBox.cpp:
1923         (WebCore::InlineFlowBox::nodeAtPoint):
1924         * rendering/InlineFlowBox.h:
1925         * rendering/InlineTextBox.cpp:
1926         (WebCore::InlineTextBox::nodeAtPoint):
1927         * rendering/InlineTextBox.h:
1928         * rendering/RenderBlock.cpp:
1929         (WebCore::RenderBlock::nodeAtPoint):
1930         (WebCore::RenderBlock::hitTestContents):
1931         * rendering/RenderBlock.h:
1932         * rendering/RenderBox.cpp:
1933         (WebCore::RenderBox::nodeAtPoint):
1934         * rendering/RenderBox.h:
1935         * rendering/RenderFrameSet.cpp:
1936         (WebCore::RenderFrameSet::nodeAtPoint):
1937         * rendering/RenderFrameSet.h:
1938         * rendering/RenderImage.cpp:
1939         (WebCore::RenderImage::nodeAtPoint):
1940         * rendering/RenderImage.h:
1941         * rendering/RenderInline.cpp:
1942         (WebCore::RenderInline::nodeAtPoint):
1943         * rendering/RenderInline.h:
1944         * rendering/RenderLineBoxList.cpp:
1945         (WebCore::RenderLineBoxList::hitTest):
1946         * rendering/RenderListBox.cpp:
1947         (WebCore::RenderListBox::nodeAtPoint):
1948         * rendering/RenderListBox.h:
1949         * rendering/RenderObject.cpp:
1950         (WebCore::RenderObject::hitTest):
1951         (WebCore::RenderObject::nodeAtPoint):
1952         * rendering/RenderObject.h:
1953         * rendering/RenderTable.cpp:
1954         (WebCore::RenderTable::nodeAtPoint):
1955         * rendering/RenderTable.h:
1956         * rendering/RenderTableRow.cpp:
1957         (WebCore::RenderTableRow::nodeAtPoint):
1958         * rendering/RenderTableRow.h:
1959         * rendering/RenderTableSection.cpp:
1960         (WebCore::RenderTableSection::nodeAtPoint):
1961         * rendering/RenderTableSection.h:
1962         * rendering/RenderText.h:
1963         (WebCore::RenderText::nodeAtPoint):
1964         * rendering/RenderTextControlMultiLine.cpp:
1965         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
1966         * rendering/RenderTextControlMultiLine.h:
1967         * rendering/RenderTextControlSingleLine.cpp:
1968         (WebCore::RenderTextControlSingleLine::nodeAtPoint):
1969         * rendering/RenderTextControlSingleLine.h:
1970         * rendering/RenderWidget.cpp:
1971         (WebCore::RenderWidget::nodeAtPoint):
1972         * rendering/RenderWidget.h:
1973         * rendering/RootInlineBox.cpp:
1974         (WebCore::RootInlineBox::nodeAtPoint):
1975         * rendering/RootInlineBox.h:
1976         * rendering/svg/RenderSVGForeignObject.cpp:
1977         (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
1978         (WebCore::RenderSVGForeignObject::nodeAtPoint):
1979         * rendering/svg/RenderSVGForeignObject.h:
1980         * rendering/svg/RenderSVGModelObject.cpp:
1981         (WebCore::RenderSVGModelObject::nodeAtPoint):
1982         * rendering/svg/RenderSVGModelObject.h:
1983         * rendering/svg/RenderSVGRoot.cpp:
1984         (WebCore::RenderSVGRoot::nodeAtPoint):
1985         * rendering/svg/RenderSVGRoot.h:
1986         * rendering/svg/RenderSVGText.cpp:
1987         (WebCore::RenderSVGText::nodeAtFloatPoint):
1988         (WebCore::RenderSVGText::nodeAtPoint):
1989         * rendering/svg/RenderSVGText.h:
1990
1991 2011-05-17  Andrew Wilson  <atwilson@chromium.org>
1992
1993         Unreviewed, rolling out r86647.
1994         http://trac.webkit.org/changeset/86647
1995         https://bugs.webkit.org/show_bug.cgi?id=56814
1996
1997         Broke tests downstream in Chromium
1998
1999         * dom/DocumentMarker.h:
2000         (WebCore::DocumentMarker::operator==):
2001         (WebCore::DocumentMarker::operator!=):
2002         * dom/DocumentMarkerController.cpp:
2003         (WebCore::DocumentMarkerController::addMarker):
2004         (WebCore::DocumentMarkerController::copyMarkers):
2005         (WebCore::DocumentMarkerController::removeMarkers):
2006         (WebCore::DocumentMarkerController::markerContainingPoint):
2007         (WebCore::DocumentMarkerController::markersInRange):
2008         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
2009         (WebCore::DocumentMarkerController::removeMarkersFromList):
2010         (WebCore::DocumentMarkerController::repaintMarkers):
2011         (WebCore::DocumentMarkerController::shiftMarkers):
2012         (WebCore::DocumentMarkerController::setMarkersActive):
2013         (WebCore::DocumentMarkerController::hasMarkers):
2014         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
2015         (WebCore::DocumentMarkerController::showMarkers):
2016         * dom/DocumentMarkerController.h:
2017         * editing/CompositeEditCommand.cpp:
2018         (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
2019         * editing/DeleteSelectionCommand.cpp:
2020         (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
2021         * editing/Editor.cpp:
2022         (WebCore::Editor::selectionStartHasMarkerFor):
2023         * editing/SpellingCorrectionController.cpp:
2024         (WebCore::SpellingCorrectionController::respondToChangedSelection):
2025         * editing/SpellingCorrectionController.h:
2026         (WebCore::SpellingCorrectionController::shouldStartTimerFor):
2027         * rendering/HitTestResult.cpp:
2028         (WebCore::HitTestResult::spellingToolTip):
2029         (WebCore::HitTestResult::replacedString):
2030         * rendering/InlineTextBox.cpp:
2031         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
2032         (WebCore::InlineTextBox::paintTextMatchMarker):
2033         (WebCore::InlineTextBox::computeRectForReplacementMarker):
2034         (WebCore::InlineTextBox::paintDocumentMarkers):
2035         * rendering/svg/SVGInlineFlowBox.cpp:
2036         (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
2037
2038 2011-05-17  Andrew Wilson  <atwilson@chromium.org>
2039
2040         Unreviewed, rolling out r86656.
2041         http://trac.webkit.org/changeset/86656
2042
2043         Broke tests downstream in Chromium
2044
2045         * editing/SpellingCorrectionController.cpp:
2046         (WebCore::markersHaveIdenticalDescription):
2047         (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection):
2048         (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult):
2049
2050 2011-05-17  Yufeng Shen  <miletus@chromium.org>
2051
2052         Reviewed by Darin Fisher.
2053
2054         Make WebKit expose extra touch information
2055         https://bugs.webkit.org/show_bug.cgi?id=59030
2056
2057         * dom/Document.cpp:
2058         (WebCore::Document::createTouch):
2059         * dom/Document.h:
2060         * dom/Document.idl:
2061         * dom/Touch.cpp:
2062         (WebCore::Touch::Touch):
2063         * dom/Touch.h:
2064         (WebCore::Touch::create):
2065         (WebCore::Touch::webkitRadiusX):
2066         (WebCore::Touch::webkitRadiusY):
2067         (WebCore::Touch::webkitRotationAngle):
2068         * dom/Touch.idl:
2069         * page/EventHandler.cpp:
2070         (WebCore::EventHandler::handleTouchEvent):
2071         * platform/PlatformTouchPoint.h:
2072         (WebCore::PlatformTouchPoint::radiusX):
2073         (WebCore::PlatformTouchPoint::radiusY):
2074         (WebCore::PlatformTouchPoint::rotationAngle):
2075
2076 2011-05-17  Eric Seidel  <eric@webkit.org>
2077
2078         Reviewed by Ryosuke Niwa.
2079
2080         Add a LineLayoutState object to hold global state during line layout
2081         https://bugs.webkit.org/show_bug.cgi?id=60113
2082
2083         Like LayoutState for layout(), LineLayoutState keeps track of global information
2084         during an entire linebox tree layout pass (aka layoutInlineChildren).
2085
2086         For now it just holds isFullLayout and the logicalRepaintTop/Bottom.
2087         It's possible we should hold the useRepaintBounds bool as well as
2088         the startLine and endLine RootInlineBox pointers.
2089
2090         No change in behavior, thus no tests.
2091
2092         * rendering/RenderBlock.cpp:
2093         (WebCore::RenderBlock::layoutBlock):
2094         * rendering/RenderBlock.h:
2095         * rendering/RenderBlockLineLayout.cpp:
2096         (WebCore::LineLayoutState::LineLayoutState):
2097         (WebCore::LineLayoutState::markForFullLayout):
2098         (WebCore::LineLayoutState::isFullLayout):
2099         (WebCore::LineLayoutState::setRepaintRange):
2100         (WebCore::LineLayoutState::updateRepaintRangeFromBox):
2101         (WebCore::LineLayoutState::startLine):
2102         (WebCore::LineLayoutState::endLine):
2103         (WebCore::deleteLineRange):
2104         (WebCore::RenderBlock::layoutRunsAndFloats):
2105         (WebCore::RenderBlock::layoutInlineChildren):
2106         (WebCore::RenderBlock::checkFloatsInCleanLine):
2107         (WebCore::RenderBlock::determineStartPosition):
2108         (WebCore::RenderBlock::determineEndPosition):
2109         (WebCore::RenderBlock::matchedEndLine):
2110
2111 2011-05-17  Andreas Kling  <kling@webkit.org>
2112
2113         Reviewed by Kenneth Rohde Christiansen.
2114
2115         Area element doesn't update region when dynamically altered.
2116         https://bugs.webkit.org/show_bug.cgi?id=54636
2117
2118         Recompute the clickable region after the "shape" or "coords" attribute
2119         of an area element is changed.
2120
2121         Test: fast/images/imagemap-dynamic-area-updates.html
2122
2123         * html/HTMLAreaElement.cpp:
2124         (WebCore::HTMLAreaElement::parseMappedAttribute):
2125         (WebCore::HTMLAreaElement::invalidateCachedRegion):
2126         * html/HTMLAreaElement.h:
2127
2128 2011-05-09  Luiz Agostini  <luiz.agostini@openbossa.org>
2129
2130         Reviewed by Kenneth Rohde Christiansen.
2131
2132         [Qt] Redirection of HTTP POST (3xx) incorrectly includes original POST data
2133         https://bugs.webkit.org/show_bug.cgi?id=60440
2134
2135         Makes sure that the HTTP headers Content-type and Content-length are not included in
2136         the requests that do not have any content.
2137
2138         Tests: http/tests/navigation/post-301-response.html
2139                http/tests/navigation/post-302-response.html
2140                http/tests/navigation/post-303-response.html
2141                http/tests/navigation/post-307-response.html
2142
2143         * platform/network/qt/QNetworkReplyHandler.cpp:
2144         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
2145
2146 2011-05-17  Andreas Kling  <kling@webkit.org>
2147
2148         Reviewed by Benjamin Poulain.
2149
2150         [Qt] GraphicsLayerQtImpl: Remove an unused variable.
2151
2152         * platform/graphics/qt/GraphicsLayerQt.cpp:
2153         (WebCore::GraphicsLayerQtImpl::paint):
2154
2155 2011-05-17  Pavel Feldman  <pfeldman@google.com>
2156
2157         Reviewed by Yury Semikhatsky.
2158
2159         Web Inspector: navigating from elements panel does not show source view.
2160         https://bugs.webkit.org/show_bug.cgi?id=60970
2161
2162         * inspector/front-end/TextViewer.js:
2163         (WebInspector.TextViewer.prototype.highlightLine):
2164         (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk):
2165
2166 2011-05-17  Sam Magnuson  <smagnuson@netflix.com>
2167
2168         Reviewed by Kenneth Rohde Christiansen.
2169
2170         [Qt] Node that have both an opacity and a transform animation on them seem not to fire.
2171         https://bugs.webkit.org/show_bug.cgi?id=40841
2172
2173         Test: compositing/animation/busy-indicator.html
2174
2175         * platform/graphics/qt/GraphicsLayerQt.cpp:
2176         (WebCore::GraphicsLayerQtImpl::recache):
2177         (WebCore::GraphicsLayerQtImpl::flushChanges):
2178         (WebCore::GraphicsLayerQt::setContentsToImage):
2179         (WebCore::TransformAnimationQt::getAnimatedProperty):
2180         (WebCore::OpacityAnimationQt::getAnimatedProperty):
2181         (WebCore::GraphicsLayerQt::addAnimation):
2182
2183 2011-05-17  Grace Kloba  <klobag@chromium.org>
2184
2185         Reviewed by Kenneth Russell.
2186
2187         GraphicsContext3DSkia needs to honor the platform Sk_x_SHIFT value instead of assuming BGRA color
2188         https://bugs.webkit.org/show_bug.cgi?id=60965
2189
2190         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
2191         (WebCore::GraphicsContext3D::getImageData):
2192
2193 2011-05-17  Alexander Pavlov  <apavlov@chromium.org>
2194
2195         Reviewed by Yury Semikhatsky.
2196
2197         Web Inspector: Enter/Tab after editing a CSS property does not invoke editor on next field
2198         https://bugs.webkit.org/show_bug.cgi?id=60962
2199
2200         * inspector/front-end/ElementsPanel.js:
2201         (WebInspector.ElementsPanel.prototype.updateStyles):
2202
2203 2011-05-17  Sheriff Bot  <webkit.review.bot@gmail.com>
2204
2205         Unreviewed, rolling out r86660.
2206         http://trac.webkit.org/changeset/86660
2207         https://bugs.webkit.org/show_bug.cgi?id=60958
2208
2209         broke search in console panel (Requested by podivilov on
2210         #webkit).
2211
2212         * inspector/front-end/ConsoleView.js:
2213         (WebInspector.ConsoleView.prototype.show):
2214         (WebInspector.ConsoleView.prototype.afterShow):
2215         (WebInspector.ConsoleView.prototype.hide):
2216         (WebInspector.ConsoleView.prototype.addMessage):
2217         (WebInspector.ConsoleView.prototype.clearMessages):
2218         * inspector/front-end/DebuggerPresentationModel.js:
2219         (WebInspector.DebuggerPresentationModel):
2220         * inspector/front-end/Drawer.js:
2221         (WebInspector.Drawer.prototype.set visibleView):
2222         (WebInspector.Drawer.prototype.show.animationFinished):
2223         (WebInspector.Drawer.prototype.show):
2224         * inspector/front-end/Panel.js:
2225         (WebInspector.Panel):
2226         * inspector/front-end/ResourceTreeModel.js:
2227         (WebInspector.ResourceTreeModel):
2228         * inspector/front-end/inspector.html:
2229         * inspector/front-end/inspector.js:
2230         (WebInspector._createPanels):
2231
2232 2011-05-17  Alexis Menard  <alexis.menard@openbossa.org>
2233
2234         Unreviewed warning fix introduced by r86377.
2235
2236         * rendering/RenderFieldset.cpp:
2237         (WebCore::RenderFieldset::paintMask):
2238
2239 2011-05-17  Yuta Kitamura  <yutak@chromium.org>
2240
2241         Reviewed by Kent Tamura.
2242
2243         WebSocket: Uninline methods in ThreadableWebSocketChannelClientWrapper
2244         https://bugs.webkit.org/show_bug.cgi?id=60945
2245
2246         Add ThreadableWebSocketChannelClientWrapper.cpp. Uninline methods in this class and
2247         move these definitions into .cpp in order to allow further modifications in this class.
2248
2249         No new tests, as this is just refactoring.
2250
2251         * CMakeLists.txt:
2252         * GNUmakefile.list.am:
2253         * WebCore.gypi:
2254         * WebCore.pro:
2255         * WebCore.vcproj/WebCore.vcproj:
2256         * WebCore.xcodeproj/project.pbxproj:
2257         * websockets/ThreadableWebSocketChannelClientWrapper.cpp: Added.
2258         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2259         (WebCore::ThreadableWebSocketChannelClientWrapper::create):
2260         (WebCore::ThreadableWebSocketChannelClientWrapper::clearSyncMethodDone):
2261         (WebCore::ThreadableWebSocketChannelClientWrapper::setSyncMethodDone):
2262         (WebCore::ThreadableWebSocketChannelClientWrapper::syncMethodDone):
2263         (WebCore::ThreadableWebSocketChannelClientWrapper::sent):
2264         (WebCore::ThreadableWebSocketChannelClientWrapper::setSent):
2265         (WebCore::ThreadableWebSocketChannelClientWrapper::bufferedAmount):
2266         (WebCore::ThreadableWebSocketChannelClientWrapper::setBufferedAmount):
2267         (WebCore::ThreadableWebSocketChannelClientWrapper::clearClient):
2268         (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
2269         (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
2270         (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
2271         (WebCore::ThreadableWebSocketChannelClientWrapper::suspend):
2272         (WebCore::ThreadableWebSocketChannelClientWrapper::resume):
2273         (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingEvents):
2274         * websockets/ThreadableWebSocketChannelClientWrapper.h:
2275
2276 2011-05-17  Andreas Kling  <andreas.kling@nokia.com>
2277
2278         Reviewed by Kenneth Rohde Christiansen.
2279
2280         [Qt] Support shadowed text in fast font path.
2281         https://bugs.webkit.org/show_bug.cgi?id=60462
2282
2283         * platform/graphics/Font.cpp:
2284         (WebCore::Font::drawText): Remove complex path shortcut for shadowed text.
2285
2286         * platform/graphics/qt/FontQt.cpp:
2287         (WebCore::Font::drawGlyphs): Paint shadows for simple text.
2288
2289 2011-05-17  Andreas Kling  <kling@webkit.org>
2290
2291         Reviewed by Kenneth Rohde Christiansen.
2292
2293         [Qt] Construct GraphicsLayerQtImpl::State with correct values.
2294         https://bugs.webkit.org/show_bug.cgi?id=60902
2295
2296         The GraphicsLayerQtImpl initial state should match the initial values
2297         of the corresponding GraphicsLayer flags.
2298
2299         * platform/graphics/qt/GraphicsLayerQt.cpp:
2300         (WebCore::GraphicsLayerQtImpl::State::State):
2301
2302 2011-05-12  Hans Wennborg  <hans@chromium.org>
2303
2304         Reviewed by Steve Block.
2305
2306         IndexedDB: Index population should ignore records without key for index
2307         https://bugs.webkit.org/show_bug.cgi?id=60697
2308
2309         When populating a new index, records which do not have a key on the
2310         index's key path should be ignored.
2311
2312         * storage/IDBObjectStoreBackendImpl.cpp:
2313
2314 2011-05-17  Young Han Lee  <joybro@company100.net>
2315
2316         Reviewed by Csaba Osztrogonác.
2317
2318         [Texmap][Qt] Enable strict PassOwnPtr for Qt with texmap enabled.
2319         https://bugs.webkit.org/show_bug.cgi?id=60947
2320
2321         No new tests. Build fix.
2322
2323         * platform/graphics/qt/TextureMapperQt.cpp:
2324         (WebCore::TextureMapper::create):
2325         * platform/graphics/qt/TextureMapperQt.h:
2326         (WebCore::TextureMapperQt::create):
2327         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
2328         (WebCore::GraphicsLayer::create):
2329
2330 2011-05-17  Alexander Pavlov  <apavlov@chromium.org>
2331
2332         Reviewed by Yury Semikhatsky.
2333
2334         Web Inspector: Increment/decrement of very big CSS numeric values results in invalid CSS
2335         https://bugs.webkit.org/show_bug.cgi?id=60890
2336
2337         * inspector/front-end/MetricsSidebarPane.js:
2338         (WebInspector.MetricsSidebarPane.prototype._handleKeyDown):
2339         * inspector/front-end/StylesSidebarPane.js:
2340         (WebInspector.StylesSidebarPane.alteredFloatNumber):
2341         (WebInspector.StylePropertyTreeElement.prototype):
2342
2343 2011-05-17  Pavel Podivilov  <podivilov@chromium.org>
2344
2345         Reviewed by Yury Semikhatsky.
2346
2347         Web Inspector: merge ConsoleView into ConsolePanel.
2348         https://bugs.webkit.org/show_bug.cgi?id=54670
2349
2350         Console view in drawer looks exactly the same as console panel. Merging ConsoleView and ConsolePanel together
2351         will allow us to reuse panel's functionality (e.g. resizable sidebar) even when console is docked.
2352
2353         * inspector/front-end/ConsoleView.js:
2354         (WebInspector.ConsolePanel.prototype.get toolbarItemLabel):
2355         (WebInspector.ConsolePanel.prototype.show):
2356         (WebInspector.ConsolePanel.prototype.hide):
2357         (WebInspector.ConsolePanel.prototype.showInDrawer):
2358         (WebInspector.ConsolePanel.prototype.afterShowInDrawer):
2359         (WebInspector.ConsolePanel.prototype.hideInDrawer):
2360         (WebInspector.ConsolePanel.prototype.addMessage):
2361         (WebInspector.ConsolePanel.prototype.clearMessages):
2362         * inspector/front-end/DebuggerPresentationModel.js:
2363         (WebInspector.DebuggerPresentationModel):
2364         * inspector/front-end/Drawer.js:
2365         (WebInspector.Drawer.prototype.set visibleView):
2366         (WebInspector.Drawer.prototype.show.animationFinished):
2367         (WebInspector.Drawer.prototype.show):
2368         * inspector/front-end/Panel.js:
2369         (WebInspector.Panel):
2370         * inspector/front-end/ResourceTreeModel.js:
2371         (WebInspector.ResourceTreeModel):
2372         * inspector/front-end/inspector.html:
2373         * inspector/front-end/inspector.js:
2374         (WebInspector._createPanels):
2375
2376 2011-05-16  Yuta Kitamura  <yutak@chromium.org>
2377
2378         Reviewed by Kent Tamura.
2379
2380         WebSocket: WebSocketHandshake prints a carriage return to console
2381         https://bugs.webkit.org/show_bug.cgi?id=60880
2382
2383         * websockets/WebSocketHandshake.cpp:
2384         (WebCore::WebSocketHandshake::readStatusLine):
2385         WebSocketHandshake should not print a carriage return to console. To fix this,
2386         we first check whether the status line ends with CRLF. After that,
2387         we can print the first (lineLength - 2) characters of the status line
2388         which do not contain a carriage return.
2389
2390 2011-05-16  MORITA Hajime  <morrita@google.com>
2391
2392         Unreviewed build fix for r86647, which broke SUPPORT_AUTOCORRECTION_PANEL.
2393
2394         * editing/SpellingCorrectionController.cpp:
2395         (WebCore::markersHaveIdenticalDescription):
2396         (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection):
2397         (WebCore::SpellingCorrectionController::processMarkersOnTextToBeReplacedByResult):
2398
2399 2011-05-16  Kent Tamura  <tkent@chromium.org>
2400
2401         Fix Leopard build.
2402
2403         * html/HTMLInputElement.cpp:
2404         (WebCore::HTMLInputElement::stepUpFromRenderer): Use double instead of int.
2405
2406 2011-05-16  James Robinson  <jamesr@chromium.org>
2407
2408         Reviewed by Kenneth Russell.
2409
2410         [chromium] Decouple LayerChromium/CCLayerImpl trees
2411         https://bugs.webkit.org/show_bug.cgi?id=58830
2412
2413         Makes the CCLayerImpl tree self-hosting and provides an explicit step
2414         to synchronize the LayerChromium tree to the CCLayerImpl tree.
2415         Tested by compositing/ layout tests and by unit tests in WebKit/chromium.
2416
2417         * WebCore.gypi:
2418         * platform/graphics/chromium/CanvasLayerChromium.cpp:
2419         (WebCore::CanvasLayerChromium::createCCLayerImpl):
2420         * platform/graphics/chromium/LayerChromium.cpp:
2421         (WebCore::LayerChromium::LayerChromium):
2422         (WebCore::LayerChromium::~LayerChromium):
2423         (WebCore::LayerChromium::cleanupResources):
2424         (WebCore::LayerChromium::dumpLayer):
2425         (WebCore::LayerChromium::dumpLayerProperties):
2426         (WebCore::LayerChromium::createCCLayerImpl):
2427         (WebCore::LayerChromium::ccLayerImpl):
2428         * platform/graphics/chromium/LayerChromium.h:
2429         (WebCore::LayerChromium::id):
2430         (WebCore::LayerChromium::setCCLayerImpl):
2431         * platform/graphics/chromium/LayerRendererChromium.cpp:
2432         (WebCore::LayerRendererChromium::updateAndDrawLayers):
2433         (WebCore::LayerRendererChromium::updateLayers):
2434         (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces):
2435         (WebCore::LayerRendererChromium::updateCompositorResourcesRecursive):
2436         * platform/graphics/chromium/LayerRendererChromium.h:
2437         * platform/graphics/chromium/PluginLayerChromium.cpp:
2438         (WebCore::PluginLayerChromium::createCCLayerImpl):
2439         * platform/graphics/chromium/TreeSynchronizer.cpp: Added.
2440         (WebCore::TreeSynchronizer::addCCLayerImplsToMapRecursive):
2441         (WebCore::TreeSynchronizer::synchronizeTreeRecursive):
2442         (WebCore::TreeSynchronizer::synchronizeTrees):
2443         * platform/graphics/chromium/TreeSynchronizer.h:
2444         * platform/graphics/chromium/VideoLayerChromium.cpp:
2445         (WebCore::VideoLayerChromium::createCCLayerImpl):
2446         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
2447         (WebCore::CCCanvasLayerImpl::CCCanvasLayerImpl):
2448         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
2449         (WebCore::CCCanvasLayerImpl::create):
2450         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2451         (WebCore::CCLayerImpl::CCLayerImpl):
2452         (WebCore::CCLayerImpl::addChild):
2453         (WebCore::CCLayerImpl::removeFromParent):
2454         (WebCore::CCLayerImpl::removeAllChildren):
2455         (WebCore::CCLayerImpl::clearChildList):
2456         (WebCore::CCLayerImpl::descendantsDrawsContent):
2457         (WebCore::CCLayerImpl::drawsContent):
2458         (WebCore::CCLayerImpl::updateCompositorResources):
2459         * platform/graphics/chromium/cc/CCLayerImpl.h:
2460         (WebCore::CCLayerImpl::create):
2461         (WebCore::CCLayerImpl::parent):
2462         (WebCore::CCLayerImpl::children):
2463         (WebCore::CCLayerImpl::setMaskLayer):
2464         (WebCore::CCLayerImpl::maskLayer):
2465         (WebCore::CCLayerImpl::setReplicaLayer):
2466         (WebCore::CCLayerImpl::replicaLayer):
2467         (WebCore::CCLayerImpl::id):
2468         (WebCore::CCLayerImpl::owner):
2469         (WebCore::CCLayerImpl::setParent):
2470         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
2471         (WebCore::CCPluginLayerImpl::CCPluginLayerImpl):
2472         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
2473         (WebCore::CCPluginLayerImpl::create):
2474         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2475         (WebCore::CCVideoLayerImpl::CCVideoLayerImpl):
2476         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2477         (WebCore::CCVideoLayerImpl::create):
2478
2479 2011-05-16  Naoki Takano  <takano.naoki@gmail.com>
2480
2481         Reviewed by Kent Tamura.
2482
2483         HTML5 Number Spinbox displays a 0 in situations where a 0 is not between the min and max.
2484         https://bugs.webkit.org/show_bug.cgi?id=60871
2485
2486         Test: fast/forms/input-stepup-stepdown-from-renderer.html
2487
2488         In number input type, if the value is not a number, including empty, the currect valued is assumed 0.
2489         But we have to handle it separately from the case when the value is actuall "0".
2490
2491         * html/HTMLInputElement.cpp:
2492         (WebCore::HTMLInputElement::stepUpFromRenderer): Added cliping for default value.
2493
2494 2011-05-16  Adam Barth  <abarth@webkit.org>
2495
2496         Reviewed by Eric Seidel.
2497
2498         Remove bogus ASSERT in Document::setCompatibilityMode
2499         https://bugs.webkit.org/show_bug.cgi?id=60935
2500
2501         The ASSERT is invalid when the parser is in the initial state and the
2502         document is non-empty, which is strange but not impossible.
2503
2504         Test: fast/parser/append-child-followed-by-document-write.html
2505
2506         * dom/Document.cpp:
2507         (WebCore::Document::setCompatibilityMode):
2508
2509 2011-05-16  MORITA Hajime  <morrita@google.com>
2510
2511         Reviewed by Tony Chang.
2512
2513         [Refactoring] Member variables of DocumentMarker should be encapsulated.        
2514         https://bugs.webkit.org/show_bug.cgi?id=56814
2515
2516         - Moved DocumentMarker's member variables to private and added getters for them.
2517         - Added DocumentMarker setters and constructors, which contain assertions against m_type values
2518           because description and activeMatch are used with specific type of MarkerType.
2519         - Moved chromium's WebKit::WebFrameImpl::addMarker() to DocumentMarkerController because
2520           it accesses DocumentMarker internals.
2521         - Moved a version of DMC::addMarker() to private and add alternatives that hide
2522           internals of DocumentMarker. (The internal will be renewed by upcoming change.)
2523         
2524         * dom/DocumentMarker.h:
2525         (WebCore::DocumentMarker::type):
2526         (WebCore::DocumentMarker::startOffset):
2527         (WebCore::DocumentMarker::endOffset):
2528         (WebCore::DocumentMarker::description):
2529         (WebCore::DocumentMarker::hasDescription):
2530         (WebCore::DocumentMarker::activeMatch):
2531         (WebCore::DocumentMarker::clearDescription):
2532         (WebCore::DocumentMarker::setStartOffset):
2533         (WebCore::DocumentMarker::setEndOffset):
2534         (WebCore::DocumentMarker::operator==):
2535         (WebCore::DocumentMarker::DocumentMarker):
2536         (WebCore::DocumentMarker::shiftOffsets):
2537         (WebCore::DocumentMarker::setActiveMatch):
2538         * dom/DocumentMarkerController.cpp:
2539         (WebCore::DocumentMarkerController::addMarker):
2540         (WebCore::DocumentMarkerController::addTextMatchMarker):
2541         (WebCore::DocumentMarkerController::copyMarkers):
2542         (WebCore::DocumentMarkerController::removeMarkers):
2543         (WebCore::DocumentMarkerController::markerContainingPoint):
2544         (WebCore::DocumentMarkerController::markersInRange):
2545         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
2546         (WebCore::DocumentMarkerController::removeMarkersFromList):
2547         (WebCore::DocumentMarkerController::repaintMarkers):
2548         (WebCore::DocumentMarkerController::shiftMarkers):
2549         (WebCore::DocumentMarkerController::setMarkersActive):
2550         (WebCore::DocumentMarkerController::hasMarkers):
2551         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
2552         (WebCore::DocumentMarkerController::showMarkers):
2553         * dom/DocumentMarkerController.h:
2554         * editing/CompositeEditCommand.cpp:
2555         (WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
2556         * editing/DeleteSelectionCommand.cpp:
2557         (WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
2558         * editing/Editor.cpp:
2559         (WebCore::Editor::selectionStartHasMarkerFor):
2560         * editing/SpellingCorrectionController.cpp:
2561         (WebCore::SpellingCorrectionController::respondToChangedSelection):
2562         * editing/SpellingCorrectionController.h:
2563         (WebCore::SpellingCorrectionController::shouldStartTimerFor):
2564         * rendering/HitTestResult.cpp:
2565         (WebCore::HitTestResult::spellingToolTip):
2566         (WebCore::HitTestResult::replacedString):
2567         * rendering/InlineTextBox.cpp:
2568         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
2569         (WebCore::InlineTextBox::paintTextMatchMarker):
2570         (WebCore::InlineTextBox::computeRectForReplacementMarker):
2571         (WebCore::InlineTextBox::paintDocumentMarkers):
2572         * rendering/svg/SVGInlineFlowBox.cpp:
2573         (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
2574
2575 2011-05-16  Martin Robinson  <mrobinson@igalia.com>
2576
2577         Fix the Cairo build for older versions of GTK+.
2578
2579         * platform/gtk/GtkWidgetBackingStoreX11.cpp: Include GtkVersioning.h to
2580         satisfy older versions of GTK+ 2.x.
2581
2582 2011-05-16  Ian Henderson  <ianh@apple.com>
2583
2584         Reviewed by Joseph Pecoraro.
2585
2586         Page::goToItem doesn't work while loading is deferred
2587         https://bugs.webkit.org/show_bug.cgi?id=60412
2588
2589         If goToItem is called while loading is deferred, save the arguments
2590         and try again later instead of doing nothing.
2591
2592         Test: loader/navigation-while-deferring-loads.html
2593
2594         * loader/FrameLoader.cpp:
2595         (WebCore::FrameLoader::setDefersLoading):
2596         Pipe the "defersLoading" state into HistoryController.
2597         * loader/HistoryController.cpp:
2598         (WebCore::HistoryController::HistoryController):
2599         (WebCore::HistoryController::goToItem):
2600         Save the HistoryItem and FrameLoadType if loading is deferred.
2601         (WebCore::HistoryController::setDefersLoading):
2602         If we have a saved HistoryItem after resuming, try going to it.
2603         * loader/HistoryController.h:
2604         * page/Page.cpp:
2605         (WebCore::Page::goToItem):
2606         No longer bail early if loading is deferred, since HistoryController
2607         now handles this case.
2608
2609 2011-05-16  Andrew Wilson  <atwilson@chromium.org>
2610
2611         Unreviewed, rolling out r86625.
2612         http://trac.webkit.org/changeset/86625
2613         https://bugs.webkit.org/show_bug.cgi?id=60719
2614
2615         Caused failed assertion on Chromium gpu canary bots
2616
2617         * WebCore.gypi:
2618         * platform/chromium/TraceEvent.h:
2619         * platform/graphics/chromium/ContentLayerChromium.cpp:
2620         (WebCore::ContentLayerChromium::create):
2621         (WebCore::ContentLayerChromium::ContentLayerChromium):
2622         (WebCore::ContentLayerChromium::~ContentLayerChromium):
2623         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2624         (WebCore::ContentLayerChromium::setLayerRenderer):
2625         (WebCore::ContentLayerChromium::createTilerIfNeeded):
2626         (WebCore::ContentLayerChromium::updateCompositorResources):
2627         * platform/graphics/chromium/ContentLayerChromium.h:
2628         (WebCore::ContentLayerChromium::drawsContent):
2629         * platform/graphics/chromium/ImageLayerChromium.cpp:
2630         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2631         (WebCore::ImageLayerChromium::updateCompositorResources):
2632         * platform/graphics/chromium/ImageLayerChromium.h:
2633         * platform/graphics/chromium/LayerPainterChromium.h: Removed.
2634         * platform/graphics/chromium/LayerRendererChromium.cpp:
2635         (WebCore::LayerRendererChromium::create):
2636         (WebCore::LayerRendererChromium::LayerRendererChromium):
2637         (WebCore::LayerRendererChromium::updateRootLayerContents):
2638         (WebCore::LayerRendererChromium::drawRootLayer):
2639         (WebCore::LayerRendererChromium::updateAndDrawLayers):
2640         (WebCore::LayerRendererChromium::updateLayers):
2641         * platform/graphics/chromium/LayerRendererChromium.h:
2642         * platform/graphics/chromium/LayerTextureSubImage.cpp: Removed.
2643         * platform/graphics/chromium/LayerTextureSubImage.h: Removed.
2644         * platform/graphics/chromium/LayerTextureUpdater.h: Removed.
2645         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Removed.
2646         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Removed.
2647         * platform/graphics/chromium/LayerTilerChromium.cpp:
2648         (WebCore::LayerTilerChromium::create):
2649         (WebCore::LayerTilerChromium::LayerTilerChromium):
2650         (WebCore::LayerTilerChromium::setLayerRenderer):
2651         (WebCore::LayerTilerChromium::setTileSize):
2652         (WebCore::LayerTilerChromium::update):
2653         (WebCore::LayerTilerChromium::uploadCanvas):
2654         (WebCore::LayerTilerChromium::updateFromPixels):
2655         (WebCore::LayerTilerChromium::draw):
2656         * platform/graphics/chromium/LayerTilerChromium.h:
2657         (WebCore::LayerTilerChromium::Tile::Tile):
2658         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2659         (WebCore::CCHeadsUpDisplay::draw):
2660
2661 2011-05-16  Antti Koivisto  <antti@apple.com>
2662
2663         Reviewed by Dave Kilzer.
2664
2665         https://bugs.webkit.org/show_bug.cgi?id=60927
2666         fastCheckSelector() does not inline correctly in all cases
2667
2668         Use anonymous namespace instead of static qualifier to get internal linkage.
2669         Use functions as template arguments instead of classes.
2670
2671         * css/CSSStyleSelector.cpp:
2672         (WebCore::CSSStyleSelector::SelectorChecker::fastCheckSelector):
2673
2674 2011-05-16  Chris Rogers  <crogers@google.com>
2675
2676         Unreviewed build fix.
2677
2678         Just return "nullptr" to fix compile errors
2679         https://bugs.webkit.org/show_bug.cgi?id=60932
2680
2681         * platform/audio/mac/AudioBusMac.mm:
2682         (WebCore::AudioBus::loadPlatformResource):
2683         * platform/audio/mac/AudioFileReaderMac.cpp:
2684         (WebCore::AudioFileReader::createBus):
2685
2686 2011-05-16  Emil A Eklund  <eae@chromium.org>
2687
2688         Reviewed by Eric Seidel.
2689
2690         Replace docTop/Right/Bottom/Left/Width/Height with documentRect
2691         https://bugs.webkit.org/show_bug.cgi?id=60743
2692
2693         Change RenderView::documentRect to compute rect once rather than four times.
2694         Replace all uses of docTop/Right/Bottom/Left/Width/Height with documentRect to
2695         simplify the code and reduce complexity.
2696
2697         Covered by existing tests.
2698
2699         * WebCore.exp.in:
2700         * page/FrameView.cpp:
2701         (WebCore::FrameView::adjustViewSize):
2702         (WebCore::FrameView::forceLayoutForPagination):
2703         * page/PrintContext.cpp:
2704         (WebCore::PrintContext::computePageRects):
2705         * rendering/RenderBox.cpp:
2706         (WebCore::RenderBox::paintRootBoxFillLayers):
2707         * rendering/RenderLayerCompositor.cpp:
2708         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
2709         * rendering/RenderView.cpp:
2710         (WebCore::RenderView::documentRect):
2711         * rendering/RenderView.h:
2712
2713 2011-05-16  Tony Chang  <tony@chromium.org>
2714
2715         Reviewed by Adam Barth.
2716
2717         [chromium] shard V8DerivedSources into 19 files
2718         https://bugs.webkit.org/show_bug.cgi?id=60926
2719
2720         This reduces the clobber build time by 4s on my machine.  It helps
2721         by making the slowest to compile V8DerivedSources faster (and thus
2722         more parallelizable).  With 8 files, the 3 slowest are 23s, 18s and
2723         10s.  With 19 files, the 3 slowest are 16s, 10s, and 10s.
2724
2725         * WebCore.gyp/WebCore.gyp:
2726         * storage/IDBObjectStore.h: Fix a missing include that was working
2727           because a different .cpp file before it was including the header.
2728
2729 2011-05-16  Chris Rogers  <crogers@google.com>
2730
2731         Unreviewed build fix.
2732
2733         Fix web audio enabled mac port compile errors
2734         https://bugs.webkit.org/show_bug.cgi?id=60930
2735
2736         * platform/audio/mac/AudioBusMac.mm:
2737         (WebCore::AudioBus::loadPlatformResource):
2738         * platform/audio/mac/AudioFileReaderMac.cpp:
2739         (WebCore::AudioFileReader::createBus):
2740
2741 2011-05-16  Eric Seidel  <eric@webkit.org>
2742
2743         Reviewed by Adam Barth.
2744
2745         Document why RenderBlockLineLayout has its own deleteLineBoxTree implementation
2746         https://bugs.webkit.org/show_bug.cgi?id=60925
2747
2748         I suspect this difference is really just papering over other bugs
2749         but now that I finally understand the difference, I should at least
2750         document it for others.
2751
2752         * rendering/RenderBlockLineLayout.cpp:
2753         (WebCore::deleteLineRange):
2754         (WebCore::RenderBlock::determineStartPosition):
2755
2756 2011-05-16  Alok Priyadarshi  <alokp@chromium.org>
2757
2758         Reviewed by James Robinson.
2759
2760         [chromium] Split canvas from LayerTilerChromium
2761         https://bugs.webkit.org/show_bug.cgi?id=60719
2762
2763         LayerTilerChromium now just does tiling. It delegates the task of painting and updating textures to LayerTextureUpdater.
2764         Also abstracted LayerTextureSubImage to upload texture pixels.
2765
2766         * WebCore.gypi:
2767         * platform/chromium/TraceEvent.h:
2768         * platform/graphics/chromium/ContentLayerChromium.cpp:
2769         (WebCore::ContentLayerChromium::create):
2770         (WebCore::ContentLayerChromium::ContentLayerChromium):
2771         (WebCore::ContentLayerChromium::~ContentLayerChromium):
2772         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2773         (WebCore::ContentLayerChromium::cleanupResources):
2774         (WebCore::ContentLayerChromium::setLayerRenderer):
2775         (WebCore::ContentLayerChromium::createTextureUpdater):
2776         (WebCore::ContentLayerChromium::drawsContent):
2777         (WebCore::ContentLayerChromium::createTilerIfNeeded):
2778         (WebCore::ContentLayerChromium::updateCompositorResources):
2779         * platform/graphics/chromium/ContentLayerChromium.h:
2780         * platform/graphics/chromium/ImageLayerChromium.cpp:
2781         (WebCore::ImageLayerTextureUpdater::ImageLayerTextureUpdater):
2782         (WebCore::ImageLayerTextureUpdater::~ImageLayerTextureUpdater):
2783         (WebCore::ImageLayerTextureUpdater::orientation):
2784         (WebCore::ImageLayerTextureUpdater::prepareToUpdate):
2785         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
2786         (WebCore::ImageLayerTextureUpdater::imageRect):
2787         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2788         (WebCore::ImageLayerChromium::updateCompositorResources):
2789         (WebCore::ImageLayerChromium::createTextureUpdater):
2790         * platform/graphics/chromium/ImageLayerChromium.h:
2791         * platform/graphics/chromium/LayerPainterChromium.h: Added.
2792         * platform/graphics/chromium/LayerRendererChromium.cpp:
2793         (WebCore::LayerRendererChromium::create):
2794         (WebCore::LayerRendererChromium::LayerRendererChromium):
2795         (WebCore::LayerRendererChromium::updateRootLayerContents):
2796         (WebCore::LayerRendererChromium::drawRootLayer):
2797         (WebCore::LayerRendererChromium::updateAndDrawLayers):
2798         (WebCore::LayerRendererChromium::updateLayers):
2799         * platform/graphics/chromium/LayerRendererChromium.h:
2800         * platform/graphics/chromium/LayerTextureSubImage.cpp: Added.
2801         (WebCore::LayerTextureSubImage::LayerTextureSubImage):
2802         (WebCore::LayerTextureSubImage::~LayerTextureSubImage):
2803         (WebCore::LayerTextureSubImage::setSubImageSize):
2804         (WebCore::LayerTextureSubImage::upload):
2805         (WebCore::LayerTextureSubImage::uploadWithTexSubImage):
2806         (WebCore::LayerTextureSubImage::uploadWithMapTexSubImage):
2807         * platform/graphics/chromium/LayerTextureSubImage.h: Added.
2808         * platform/graphics/chromium/LayerTextureUpdater.h: Added.
2809         (WebCore::LayerTextureUpdater::LayerTextureUpdater):
2810         (WebCore::LayerTextureUpdater::~LayerTextureUpdater):
2811         (WebCore::LayerTextureUpdater::context):
2812         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp: Added.
2813         (WebCore::LayerTextureUpdaterCanvas::LayerTextureUpdaterCanvas):
2814         (WebCore::LayerTextureUpdaterCanvas::paintContents):
2815         (WebCore::LayerTextureUpdaterBitmap::LayerTextureUpdaterBitmap):
2816         (WebCore::LayerTextureUpdaterBitmap::prepareToUpdate):
2817         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
2818         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h: Added.
2819         (WebCore::LayerTextureUpdaterCanvas::~LayerTextureUpdaterCanvas):
2820         (WebCore::LayerTextureUpdaterCanvas::contentRect):
2821         (WebCore::LayerTextureUpdaterBitmap::~LayerTextureUpdaterBitmap):
2822         (WebCore::LayerTextureUpdaterBitmap::orientation):
2823         * platform/graphics/chromium/LayerTilerChromium.cpp:
2824         (WebCore::LayerTilerChromium::create):
2825         (WebCore::LayerTilerChromium::LayerTilerChromium):
2826         (WebCore::LayerTilerChromium::setTileSize):
2827         (WebCore::LayerTilerChromium::prepareToUpdate):
2828         (WebCore::LayerTilerChromium::updateRect):
2829         (WebCore::LayerTilerChromium::draw):
2830         * platform/graphics/chromium/LayerTilerChromium.h:
2831         (WebCore::LayerTilerChromium::Tile::Tile):
2832         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2833         (WebCore::CCHeadsUpDisplay::draw):
2834
2835 2011-05-16  Andrew Wilson  <atwilson@chromium.org>
2836
2837         Unreviewed prospective build fix/workaround for chromium ARM compiler error.
2838
2839         * platform/graphics/GraphicsLayer.cpp:
2840         (WebCore::GraphicsLayer::animationNameForTransition):
2841
2842 2011-05-16  Martin Robinson  <mrobinson@igalia.com>
2843
2844         Reviewed by Anders Carlsson.
2845
2846         [GTK] [WebKit2] Provide a fast version of the backing store for X11
2847         https://bugs.webkit.org/show_bug.cgi?id=60912
2848
2849         No new tests. This will be covered by WebKit2 pixel tests.
2850
2851         * GNUmakefile.list.am: Added new GtkWidgetBackingStore source and header files.
2852         * platform/gtk/GtkWidgetBackingStore.h: Added.
2853         * platform/gtk/GtkWidgetBackingStoreCairo.cpp: Added this implementation of the backing
2854         store that uses Cairo and has the same performance characteristics as the WebKit2 implementaiton.
2855         * platform/gtk/GtkWidgetBackingStoreX11.cpp: Added this implementation of the backing
2856         store that uses X11 directly and has better performance than the Cairo version.
2857
2858 2011-05-16  Chris Rogers  <crogers@google.com>
2859
2860         Reviewed by senorblanco@chromium.org.
2861
2862         Add DynamicsCompressorNode implementation
2863         https://bugs.webkit.org/show_bug.cgi?id=60682
2864
2865         No new tests since audio API is not yet implemented.
2866
2867         * DerivedSources.make:
2868         * WebCore.gypi:
2869         * WebCore.xcodeproj/project.pbxproj:
2870         * platform/audio/DynamicsCompressor.cpp: Added.
2871         (WebCore::DynamicsCompressor::DynamicsCompressor):
2872         (WebCore::DynamicsCompressor::initializeParameters):
2873         (WebCore::DynamicsCompressor::parameterValue):
2874         (WebCore::DynamicsCompressor::setEmphasisStageParameters):
2875         (WebCore::DynamicsCompressor::setEmphasisParameters):
2876         (WebCore::DynamicsCompressor::process):
2877         (WebCore::DynamicsCompressor::reset):
2878         * platform/audio/DynamicsCompressor.h: Added.
2879         (WebCore::DynamicsCompressor::isStereo):
2880         (WebCore::DynamicsCompressor::sampleRate):
2881         (WebCore::DynamicsCompressor::nyquist):
2882         * platform/audio/DynamicsCompressorKernel.cpp: Added.
2883         (WebCore::saturate):
2884         (WebCore::DynamicsCompressorKernel::DynamicsCompressorKernel):
2885         (WebCore::DynamicsCompressorKernel::setPreDelayTime):
2886         (WebCore::DynamicsCompressorKernel::process):
2887         (WebCore::DynamicsCompressorKernel::reset):
2888         * platform/audio/DynamicsCompressorKernel.h: Added.
2889         (WebCore::DynamicsCompressorKernel::latencyFrames):
2890         (WebCore::DynamicsCompressorKernel::sampleRate):
2891         * platform/audio/ZeroPole.cpp: Added.
2892         (WebCore::ZeroPole::process):
2893         * platform/audio/ZeroPole.h: Added.
2894         (WebCore::ZeroPole::ZeroPole):
2895         (WebCore::ZeroPole::reset):
2896         (WebCore::ZeroPole::setZero):
2897         (WebCore::ZeroPole::setPole):
2898         (WebCore::ZeroPole::zero):
2899         (WebCore::ZeroPole::pole):
2900         * webaudio/AudioContext.cpp:
2901         (WebCore::AudioContext::createDynamicsCompressor):
2902         * webaudio/AudioContext.h:
2903         * webaudio/AudioContext.idl:
2904         * webaudio/AudioNode.h:
2905         * webaudio/DynamicsCompressorNode.cpp: Added.
2906         (WebCore::DynamicsCompressorNode::DynamicsCompressorNode):
2907         (WebCore::DynamicsCompressorNode::~DynamicsCompressorNode):
2908         (WebCore::DynamicsCompressorNode::process):
2909         (WebCore::DynamicsCompressorNode::reset):
2910         (WebCore::DynamicsCompressorNode::initialize):
2911         (WebCore::DynamicsCompressorNode::uninitialize):
2912         * webaudio/DynamicsCompressorNode.h: Added.
2913         (WebCore::DynamicsCompressorNode::create):
2914         * webaudio/DynamicsCompressorNode.idl: Added.
2915
2916 2011-05-16  Yuzo Fujishima  <yuzo@google.com>
2917
2918         Reviewed by Antti Koivisto.
2919
2920         Fix for Bug 43704 - Web font is printed as blank if it is not cached
2921         https://bugs.webkit.org/show_bug.cgi?id=43704
2922
2923         In setting printing, we should not validate resources already cached
2924         for the document. If we do, web fonts used for screen are revalidated
2925         and possiby reloaded. Then the fonts can be shown as blank on print.
2926         This patch won't save the case where screen and print use different web
2927         fonts. Nonetheless, this is an improvement.
2928
2929         No new tests because there seems to be no good way to test print images.
2930
2931         * editing/Editor.cpp:
2932         (WebCore::Editor::paste): Use ResourceCacheValidationSuppressor instead of explicitly allowing/disallowing stale resources.
2933         * loader/cache/CachedResourceLoader.h:
2934         (WebCore::ResourceCacheValidationSuppressor::ResourceCacheValidationSuppressor): RAII class for allowing/disallowing stale resources.
2935         (WebCore::ResourceCacheValidationSuppressor::~ResourceCacheValidationSuppressor):
2936         * page/DragController.cpp:
2937         (WebCore::DragController::concludeEditDrag): Use ResourceCacheValidationSuppressor instead of explicitly allowing/disallowing stale resources.
2938         * page/Frame.cpp:
2939         (WebCore::Frame::setPrinting): Use ResourceCacheValidationSuppressor to allow stale resources in printing.
2940
2941 2011-05-16  Dan Bernstein  <mitz@apple.com>
2942
2943         Reviewed by Darin Adler.
2944
2945         <rdar://problem/9446653> REGRESSION (r84750): Moving by word stops at apostrophe mid-word
2946         https://bugs.webkit.org/show_bug.cgi?id=60915
2947
2948         CFStringTokenizer’s kCFStringTokenizerUnitWord considers “Here’s” as two separate tokens.
2949         Switching to CFStringTokenizer in r84750 was an attempt to address an issue with Japanese word
2950         boundaries for searches with WebFindOptionsAtWordStarts, but it turned out to be insufficient,
2951         and in r86387 the Japanese word issue was addressed independently of text boundaries, so just
2952         revert r84750.
2953
2954         * platform/text/mac/TextBoundaries.mm:
2955         (WebCore::findNextWordFromIndex):
2956
2957 2011-05-16  David Kilzer  <ddkilzer@apple.com>
2958
2959         <http://webkit.org/b/60913> C++ exceptions should not be enabled when building with llvm-gcc-4.2
2960         <rdar://problem/9446430>
2961
2962         Reviewed by Mark Rowe.
2963
2964         * Configurations/Base.xcconfig: Fixed typo.
2965
2966 2011-05-16  Jon Lee  <jonlee@apple.com>
2967
2968         Fix for broken regression tests. Adding null pointer check
2969
2970         * page/FrameView.cpp:
2971         (WebCore::FrameView::didAddHorizontalScrollbar):
2972         (WebCore::FrameView::willRemoveHorizontalScrollbar):
2973
2974 2011-05-16  Adrienne Walker  <enne@google.com>
2975
2976         Reviewed by James Robinson.
2977
2978         [chromium] Remove unused member variables from LayerRendererChromium
2979         https://bugs.webkit.org/show_bug.cgi?id=60899
2980
2981         These should have been removed when tiling was enabled for root
2982         layers.
2983
2984         * platform/graphics/chromium/LayerRendererChromium.h:
2985
2986 2011-05-16  Andrew Wilson  <atwilson@chromium.org>
2987
2988         Unreviewed, rolling out r86589.
2989         http://trac.webkit.org/changeset/86589
2990         https://bugs.webkit.org/show_bug.cgi?id=54670
2991
2992         Broke chromium inspector tests.
2993
2994         * inspector/front-end/ConsoleView.js:
2995         (WebInspector.ConsoleView.prototype.show):
2996         (WebInspector.ConsoleView.prototype.afterShow):
2997         (WebInspector.ConsoleView.prototype.hide):
2998         (WebInspector.ConsoleView.prototype.addMessage):
2999         (WebInspector.ConsoleView.prototype.clearMessages):
3000         * inspector/front-end/DebuggerPresentationModel.js:
3001         (WebInspector.DebuggerPresentationModel):
3002         * inspector/front-end/Drawer.js:
3003         (WebInspector.Drawer.prototype.set visibleView):
3004         (WebInspector.Drawer.prototype.show.animationFinished):
3005         (WebInspector.Drawer.prototype.show):
3006         * inspector/front-end/Panel.js:
3007         (WebInspector.Panel):
3008         * inspector/front-end/ResourceTreeModel.js:
3009         (WebInspector.ResourceTreeModel):
3010         * inspector/front-end/inspector.html:
3011         * inspector/front-end/inspector.js:
3012         (WebInspector._createPanels):
3013
3014 2011-05-16  Brian Weinstein  <bweinstein@apple.com>
3015
3016         Reviewed by Enrica Casucci.
3017
3018         REGRESSION (r86542): Dropping URL onto Desktop creates broken Internet Shortcut file.
3019         
3020         r86477 fixed this bug by using latin1 as the CString's encoding instead of ascii, but r86542
3021         undid this change.
3022         
3023         Change it back to latin1 to fix the bug.
3024
3025         * platform/win/ClipboardWin.cpp:
3026         (WebCore::ClipboardWin::writeURL):
3027
3028 2011-05-16  Jeremy Noble  <jer.noble@apple.com>
3029
3030         Unreviewed; build fix for non-SnowLeopard builds.
3031
3032         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: Wrap definition 
3033             of layerIsDescendentOf in a #if check.
3034
3035 2011-05-16  Pavel Podivilov  <podivilov@chromium.org>
3036
3037         Reviewed by Yury Semikhatsky.
3038
3039         Web Inspector: merge ConsoleView into ConsolePanel.
3040         https://bugs.webkit.org/show_bug.cgi?id=54670
3041
3042         Console view in drawer looks exactly the same as console panel. Merging ConsoleView and ConsolePanel together
3043         will allow us to reuse panel's functionality (e.g. resizable sidebar) even when console is docked.
3044
3045         * inspector/front-end/ConsoleView.js:
3046         (WebInspector.ConsolePanel.prototype.get toolbarItemLabel):
3047         (WebInspector.ConsolePanel.prototype.show):
3048         (WebInspector.ConsolePanel.prototype.hide):
3049         (WebInspector.ConsolePanel.prototype.showInDrawer):
3050         (WebInspector.ConsolePanel.prototype.afterShowInDrawer):
3051         (WebInspector.ConsolePanel.prototype.hideInDrawer):
3052         (WebInspector.ConsolePanel.prototype.addMessage):
3053         (WebInspector.ConsolePanel.prototype.clearMessages):
3054         * inspector/front-end/DebuggerPresentationModel.js:
3055         (WebInspector.DebuggerPresentationModel):
3056         * inspector/front-end/Drawer.js:
3057         (WebInspector.Drawer.prototype.set visibleView):
3058         (WebInspector.Drawer.prototype.show.animationFinished):
3059         (WebInspector.Drawer.prototype.show):
3060         * inspector/front-end/Panel.js:
3061         (WebInspector.Panel):
3062         * inspector/front-end/ResourceTreeModel.js:
3063         (WebInspector.ResourceTreeModel):
3064         * inspector/front-end/inspector.html:
3065         * inspector/front-end/inspector.js:
3066         (WebInspector._createPanels):
3067
3068 2011-05-13  Jer Noble  <jer.noble@apple.com>
3069
3070         Reviewed by Simon Fraser.
3071
3072         Video is blank, controller is misplaced on trailers.apple.com movie in fullscreen (with two screens)
3073         https://bugs.webkit.org/show_bug.cgi?id=60826
3074
3075         Listen for a WebKitLayerHostChanged notification and, if the affected layer is an
3076         ancestor layer of the qtMovieLayer, tear down the layer and recreate it the
3077         next time setVisible(true) is called.
3078
3079         * dom/Document.cpp:
3080         (WebCore::Document::webkitDidEnterFullScreenForElement):  Call setFullScreenRootLayer(0) 
3081             before disabling animation on the full screen renderer.
3082         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3083         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3084         (WebCore::MediaPlayerPrivateQTKit::createQTMovie): Register an observer for the new 
3085             WebKitLayerHostChanged notification.
3086         (WebCore::layerIsDescendentOf): Added.
3087         (WebCore::MediaPlayerPrivateQTKit::layerHostChanged): Added.  If the changed
3088             layer is an ancestor of the movie layer, tear down rendering and re-
3089             create the next time setVisible(true) is called.
3090         (-[WebCoreMovieObserver layerHostChanged:]):  Added ObjC listener wrapper.
3091
3092 2011-05-16  Adam Barth  <abarth@webkit.org>
3093
3094         Reviewed by Darin Adler.
3095
3096         Remove disable-javascript-urls CSP directive
3097         https://bugs.webkit.org/show_bug.cgi?id=60874
3098
3099         After talking this out with various folks in the CSP working group, we
3100         decided that this syntax isn't the right way to approach this issue.
3101         If we want to address the use case of enabling JavaScript URLs
3102         separately from inline script, we'll probably just make
3103
3104           script-src javascript:
3105
3106         work that way.
3107
3108         * page/ContentSecurityPolicy.cpp:
3109         (WebCore::ContentSecurityPolicy::ContentSecurityPolicy):
3110         (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
3111         (WebCore::ContentSecurityPolicy::addDirective):
3112         * page/ContentSecurityPolicy.h:
3113
3114 2011-05-16  Jon Lee  <jonlee@apple.com>
3115
3116        Reviewed by Simon Fraser.
3117
3118        Can't horizontally scroll iframes and overflow because wheel events are always accepted
3119        https://bugs.webkit.org/show_bug.cgi?id=60779
3120
3121        * dom/Document.cpp:
3122        (WebCore::Document::Document): Initialize wheel event handler count
3123        (WebCore::Document::didAddWheelEventHandler): Increment count, and tell the main frame
3124        to recalculate the total number of wheel event handlers in all of its frames' documents
3125        (WebCore::Document::didRemoveWheelEventHandler): Reverse of previous method
3126        * dom/Document.h:
3127        (WebCore::Document::wheelEventHandlerCount): Access the count
3128        * dom/Node.cpp:
3129        (WebCore::tryAddEventListener): If the event listener is a mouse wheel event, then
3130        tell the document to increment its count
3131        (WebCore::tryRemoveEventListener): Reverse of previous method
3132
3133        * page/ChromeClient.h: Two new methods:
3134          numWheelEventHandlersChanged: WebProcess tells UIProcess to update its cached
3135            count of total wheel event handlers, which in this case only include horizontal
3136            scrollbars and mouse wheel JS handlers
3137          shouldRubberBandInDirection: allow the UIProcess to provide some control over
3138            whether rubber banding is allowed when scrolling in a particular direction
3139        * loader/EmptyClients.h:
3140        (WebCore::EmptyChromeClient::numWheelEventHandlersChanged): Default empty impl
3141        (WebCore::EmptyChromeClient::shouldRubberBandInDirection): Default empty impl
3142        * page/EventHandler.cpp:
3143        (WebCore::EventHandler::handleWheelEvent): Remove a redundant pointer check
3144        * page/Frame.cpp:
3145        (WebCore::Frame::setDocument): When the frame's document changes, calculate that
3146        document's total wheel event handlers, and notify the UIProcess
3147        (WebCore::Frame::notifyChromeClientWheelEventHandlerCountChanged): Performs a crawl
3148        of the frame tree to aggregate the count
3149        * page/Frame.h:
3150
3151        * platform/ScrollableArea.h: Virtualize didAddHorizontalScrollbar and
3152        willRemoveHorizontalScrollbar for overriding in RenderLayer and FrameView
3153        (WebCore::ScrollableArea::isHorizontalScrollerPinnedToMinimumPosition): Returns true if there is
3154        no scrollbar or the scroller position is in the minimum scroll position.
3155        (WebCore::ScrollableArea::isHorizontalScrollerPinnedToMaximumPosition): Converse of the above.
3156        (WebCore::ScrollableArea::shouldRubberBandInDirection): Default impl
3157        * page/FrameView.cpp:
3158        (WebCore::FrameView::didAddHorizontalScrollbar): Updates the frame's document's count
3159        (WebCore::FrameView::willRemoveHorizontalScrollbar): Updates the frame's document's
3160        count
3161        (WebCore::FrameView::shouldRubberBandInDirection): Connective glue
3162        * page/FrameView.h: Adding overriding methods from ScrollableArea
3163        * rendering/RenderLayer.cpp: Similar functionality to FrameView
3164        (WebCore::RenderLayer::didAddHorizontalScrollbar):
3165        (WebCore::RenderLayer::willRemoveHorizontalScrollbar):
3166        * rendering/RenderLayer.h:
3167        
3168        * platform/mac/ScrollAnimatorMac.h: Fix typo of "momentum"
3169        * platform/mac/ScrollAnimatorMac.mm:
3170        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): Fix typo of "momentum"
3171        (WebCore::ScrollAnimatorMac::smoothScrollWithEvent): Fix typo of "coalesced"
3172        (WebCore::ScrollAnimatorMac::beginScrollGesture): Fix typo of "coalesced"
3173        (WebCore::ScrollAnimatorMac::snapRubberBand): Fix typo of "momentum"
3174        
3175        (WebCore::ScrollAnimatorMac::handleWheelEvent): New logic for determining whether
3176        to allow rubber-banding based on the area's scroll position and the wheel event.
3177        Could prevent accepting the wheel event. Also, fix typo of "momentum"
3178        (WebCore::isScrollingLeftAndShouldNotRubberBand): Inline helper function for logic
3179        (WebCore::isScrollingRightAndShouldNotRubberBand): Inline helper function for logic
3180
3181 2011-05-16  Leandro Gracia Gil  <leandrogracia@chromium.org>
3182
3183         Reviewed by Tony Gentilcore.
3184
3185         Media Stream API: add local stream requests.
3186         https://bugs.webkit.org/show_bug.cgi?id=60177
3187
3188         Add the code and messages for requesting the generation of local streams and getting the reply back.
3189
3190         Tests for the Media Stream API will be provided by the bug 56587.
3191         One test is re-enabled with this patch.
3192
3193         Test: fast/dom/MediaStream/argument-types.html
3194
3195         * GNUmakefile.list.am:
3196         * WebCore.gypi:
3197         * WebCore.pro:
3198         * WebCore.vcproj/WebCore.vcproj:
3199         * WebCore.xcodeproj/project.pbxproj:
3200         * page/CallbackTask.h: Added.
3201         (WebCore::CallbackTask1::create):
3202         (WebCore::CallbackTask1::performTask):
3203         (WebCore::CallbackTask1::Scheduler::scheduleCallback):
3204         (WebCore::CallbackTask1::CallbackTask1):
3205         * page/MediaStreamClient.h:
3206         * page/MediaStreamController.cpp:
3207         (WebCore::MediaStreamController::isClientAvailable):
3208         (WebCore::MediaStreamController::unregisterFrameController):
3209         (WebCore::MediaStreamController::registerRequest):
3210         (WebCore::MediaStreamController::registerStream):
3211         (WebCore::MediaStreamController::generateStream):
3212         (WebCore::MediaStreamController::streamGenerated):
3213         (WebCore::MediaStreamController::streamGenerationFailed):
3214         * page/MediaStreamController.h:
3215         * page/MediaStreamFrameController.cpp:
3216         (WebCore::MediaStreamFrameController::GenerateStreamRequest::GenerateStreamRequest):
3217         (WebCore::MediaStreamFrameController::GenerateStreamRequest::~GenerateStreamRequest):
3218         (WebCore::MediaStreamFrameController::GenerateStreamRequest::isGenerateStreamRequest):
3219         (WebCore::MediaStreamFrameController::GenerateStreamRequest::abort):
3220         (WebCore::MediaStreamFrameController::GenerateStreamRequest::successCallback):
3221         (WebCore::MediaStreamFrameController::GenerateStreamRequest::errorCallback):
3222         (WebCore::::unregisterAll):
3223         (WebCore::::detachEmbedder):
3224         (WebCore::MediaStreamFrameController::MediaStreamFrameController):
3225         (WebCore::MediaStreamFrameController::pageController):
3226         (WebCore::MediaStreamFrameController::unregister):
3227         (WebCore::MediaStreamFrameController::enterDetachedState):
3228         (WebCore::MediaStreamFrameController::isClientAvailable):
3229         (WebCore::MediaStreamFrameController::disconnectFrame):
3230         (WebCore::MediaStreamFrameController::parseGenerateStreamOptions):
3231         (WebCore::MediaStreamFrameController::generateStream):
3232         (WebCore::MediaStreamFrameController::streamGenerated):
3233         (WebCore::MediaStreamFrameController::streamGenerationFailed):
3234         * page/MediaStreamFrameController.h:
3235         (WebCore::MediaStreamFrameController::ClientBase::ClientBase):
3236         (WebCore::MediaStreamFrameController::ClientBase::~ClientBase):
3237         (WebCore::MediaStreamFrameController::ClientBase::mediaStreamFrameController):
3238         (WebCore::MediaStreamFrameController::ClientBase::clientId):
3239         (WebCore::MediaStreamFrameController::ClientBase::isStream):
3240         (WebCore::MediaStreamFrameController::ClientBase::isGeneratedStream):
3241         (WebCore::MediaStreamFrameController::ClientBase::detachEmbedder):
3242         (WebCore::MediaStreamFrameController::ClientBase::associateFrameController):
3243         (WebCore::MediaStreamFrameController::ClientBase::unregisterClient):
3244         (WebCore::MediaStreamFrameController::StreamClient::StreamClient):
3245         (WebCore::MediaStreamFrameController::StreamClient::~StreamClient):
3246         (WebCore::MediaStreamFrameController::StreamClient::isStream):
3247         (WebCore::MediaStreamFrameController::StreamClient::unregister):
3248         (WebCore::MediaStreamFrameController::IdGenerator::IdGenerator):
3249         (WebCore::MediaStreamFrameController::IdGenerator::getNextId):
3250         (WebCore::MediaStreamFrameController::ClientMapBase::ClientMapBase):
3251         * page/Navigator.cpp:
3252         (WebCore::Navigator::webkitGetUserMedia):
3253         * page/NavigatorUserMediaErrorCallback.h:
3254
3255 2011-05-16  Pavel Podivilov  <podivilov@chromium.org>
3256
3257         Reviewed by Yury Semikhatsky.
3258
3259         Web Inspector: debuggerWasEnabled notification should not be send to front-end on navigation.
3260         https://bugs.webkit.org/show_bug.cgi?id=60888
3261
3262         * inspector/InspectorController.cpp:
3263         (WebCore::InspectorController::disableDebugger):
3264         * inspector/InspectorDebuggerAgent.cpp:
3265         (WebCore::InspectorDebuggerAgent::enable):
3266         (WebCore::InspectorDebuggerAgent::disable):
3267         (WebCore::InspectorDebuggerAgent::restore):
3268         (WebCore::InspectorDebuggerAgent::clearFrontend):
3269         * inspector/InspectorDebuggerAgent.h:
3270
3271 2011-05-16  Yury Semikhatsky  <yurys@chromium.org>
3272
3273         Unreviewed. Windows build fix.
3274
3275         * inspector/InspectorConsoleInstrumentation.h:
3276         (WebCore::InspectorInstrumentation::consoleMarkTimeline):
3277
3278 2011-05-16  Yury Semikhatsky  <yurys@chromium.org>
3279
3280         Unreviewed. Build fix.
3281
3282         * inspector/InspectorInstrumentation.h:
3283         (WebCore::InspectorInstrumentation::willStartWorkerContext):
3284
3285 2011-05-11  Yury Semikhatsky  <yurys@chromium.org>
3286
3287         Reviewed by Pavel Feldman.
3288
3289         Web Inspector: use InstrumentingAgents to access agents from InspectorInstrumentation
3290         https://bugs.webkit.org/show_bug.cgi?id=60624
3291
3292         InspectorInstrumentation retrieves inspector agents from corresponding InstrumentingAgents
3293         instance. Each agent notifies InstrumentingAgents whenever it wants to receive notifications
3294         about changes in WebCore.
3295
3296         * inspector/InspectorAgent.cpp:
3297         (WebCore::InspectorAgent::InspectorAgent):
3298         (WebCore::InspectorAgent::inspectedPageDestroyed):
3299         * inspector/InspectorAgent.h:
3300         * inspector/InspectorConsoleInstrumentation.h:
3301         (WebCore::InspectorInstrumentation::addMessageToConsole):
3302         (WebCore::InspectorInstrumentation::consoleCount):
3303         (WebCore::InspectorInstrumentation::startConsoleTiming):
3304         (WebCore::InspectorInstrumentation::stopConsoleTiming):
3305         (WebCore::InspectorInstrumentation::consoleMarkTimeline):
3306         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole):
3307         (WebCore::InspectorInstrumentation::addProfile):
3308         (WebCore::InspectorInstrumentation::profilerEnabled):
3309         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName):
3310         * inspector/InspectorController.cpp:
3311         (WebCore::InspectorController::InspectorController):
3312         (WebCore::InspectorController::inspectedPageDestroyed):
3313         (WebCore::InspectorController::didClearWindowObjectInWorld):
3314         (WebCore::InspectorController::inspectedPage):
3315         * inspector/InspectorController.h:
3316         * inspector/InspectorDatabaseInstrumentation.h: FAST_RETURN_IF_NO_FRONTENDS macros
3317         is used for early return in common case when inspector is not opened. In this
3318         case inspector instrumentation costs one additional check of a static field.
3319         (WebCore::InspectorInstrumentation::didOpenDatabase):
3320         * inspector/InspectorInstrumentation.cpp:
3321         (WebCore::InspectorInstrumentation::instrumentingAgents):
3322         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
3323         (WebCore::InspectorInstrumentation::inspectedPageDestroyedImpl):
3324         (WebCore::InspectorInstrumentation::willInsertDOMNodeImpl):
3325         (WebCore::InspectorInstrumentation::didInsertDOMNodeImpl):
3326         (WebCore::InspectorInstrumentation::willRemoveDOMNodeImpl):
3327         (WebCore::InspectorInstrumentation::didRemoveDOMNodeImpl):
3328         (WebCore::InspectorInstrumentation::willModifyDOMAttrImpl):
3329         (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
3330         (WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl):
3331         (WebCore::InspectorInstrumentation::mouseDidMoveOverElementImpl):
3332         (WebCore::InspectorInstrumentation::handleMousePressImpl):
3333         (WebCore::InspectorInstrumentation::characterDataModifiedImpl):
3334         (WebCore::InspectorInstrumentation::willSendXMLHttpRequestImpl):
3335         (WebCore::InspectorInstrumentation::didScheduleResourceRequestImpl):
3336         (WebCore::InspectorInstrumentation::didInstallTimerImpl):
3337         (WebCore::InspectorInstrumentation::didRemoveTimerImpl):
3338         (WebCore::InspectorInstrumentation::willCallFunctionImpl):
3339         (WebCore::InspectorInstrumentation::willChangeXHRReadyStateImpl):
3340         (WebCore::InspectorInstrumentation::willDispatchEventImpl):
3341         (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
3342         (WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
3343         (WebCore::InspectorInstrumentation::willFireTimerImpl):
3344         (WebCore::InspectorInstrumentation::willLayoutImpl):
3345         (WebCore::InspectorInstrumentation::willLoadXHRImpl):
3346         (WebCore::InspectorInstrumentation::willPaintImpl):
3347         (WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
3348         (WebCore::InspectorInstrumentation::applyUserAgentOverrideImpl):
3349         (WebCore::InspectorInstrumentation::willSendRequestImpl):
3350         (WebCore::InspectorInstrumentation::continueAfterPingLoaderImpl):
3351         (WebCore::InspectorInstrumentation::markResourceAsCachedImpl):
3352         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
3353         (WebCore::InspectorInstrumentation::willReceiveResourceDataImpl):
3354         (WebCore::InspectorInstrumentation::willReceiveResourceResponseImpl):
3355         (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl):
3356         (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl):
3357         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
3358         (WebCore::InspectorInstrumentation::didFailLoadingImpl):
3359         (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
3360         (WebCore::InspectorInstrumentation::scriptImportedImpl):
3361         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
3362         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
3363         (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
3364         (WebCore::InspectorInstrumentation::didCommitLoadImpl):
3365         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
3366         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
3367         (WebCore::InspectorInstrumentation::consoleCountImpl):
3368         (WebCore::InspectorInstrumentation::startConsoleTimingImpl):
3369         (WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
3370         (WebCore::InspectorInstrumentation::consoleMarkTimelineImpl):
3371         (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsoleImpl):
3372         (WebCore::InspectorInstrumentation::addProfileImpl):
3373         (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileNameImpl):
3374         (WebCore::InspectorInstrumentation::profilerEnabledImpl):
3375         (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
3376         (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
3377         (WebCore::InspectorInstrumentation::didStartWorkerContextImpl):
3378         (WebCore::InspectorInstrumentation::didCreateWorkerImpl):
3379         (WebCore::InspectorInstrumentation::didDestroyWorkerImpl):
3380         (WebCore::InspectorInstrumentation::didCreateWebSocketImpl):
3381         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequestImpl):
3382         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponseImpl):
3383         (WebCore::InspectorInstrumentation::didCloseWebSocketImpl):
3384         (WebCore::InspectorInstrumentation::networkStateChangedImpl):
3385         (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl):
3386         (WebCore::InspectorInstrumentation::hasFrontend):
3387         (WebCore::InspectorInstrumentation::pauseOnNativeEventIfNeeded):
3388         (WebCore::InspectorInstrumentation::cancelPauseOnNativeEvent):
3389         (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
3390         * inspector/InspectorInstrumentation.h:
3391         (WebCore::InspectorInstrumentation::bindInstrumentingAgents):
3392         (WebCore::InspectorInstrumentation::unbindInstrumentingAgents):
3393         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorld):
3394         (WebCore::InspectorInstrumentation::inspectedPageDestroyed):
3395         (WebCore::InspectorInstrumentation::willInsertDOMNode):
3396         (WebCore::InspectorInstrumentation::didInsertDOMNode):
3397         (WebCore::InspectorInstrumentation::willRemoveDOMNode):
3398         (WebCore::InspectorInstrumentation::willModifyDOMAttr):
3399         (WebCore::InspectorInstrumentation::didModifyDOMAttr):
3400         (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
3401         (WebCore::InspectorInstrumentation::mouseDidMoveOverElement):
3402         (WebCore::InspectorInstrumentation::handleMousePress):
3403         (WebCore::InspectorInstrumentation::characterDataModified):
3404         (WebCore::InspectorInstrumentation::willSendXMLHttpRequest):
3405         (WebCore::InspectorInstrumentation::didScheduleResourceRequest):
3406         (WebCore::InspectorInstrumentation::didInstallTimer):
3407         (WebCore::InspectorInstrumentation::didRemoveTimer):
3408         (WebCore::InspectorInstrumentation::willCallFunction):
3409         (WebCore::InspectorInstrumentation::willChangeXHRReadyState):
3410         (WebCore::InspectorInstrumentation::willDispatchEvent):
3411         (WebCore::InspectorInstrumentation::willDispatchEventOnWindow):
3412         (WebCore::InspectorInstrumentation::willEvaluateScript):
3413         (WebCore::InspectorInstrumentation::willFireTimer):
3414         (WebCore::InspectorInstrumentation::willLayout):
3415         (WebCore::InspectorInstrumentation::willLoadXHR):
3416         (WebCore::InspectorInstrumentation::willPaint):
3417         (WebCore::InspectorInstrumentation::willRecalculateStyle):
3418         (WebCore::InspectorInstrumentation::applyUserAgentOverride):
3419         (WebCore::InspectorInstrumentation::willSendRequest):