2010-09-08 Gabor Loki <loki@webkit.org>
[WebKit.git] / WebCore / ChangeLog
1 2010-09-08  Gabor Loki  <loki@webkit.org>
2
3         Reviewed by Andreas Kling.
4
5         Fix increases required alignment of target type warning on ARM
6         https://bugs.webkit.org/show_bug.cgi?id=45301
7
8         No new tests needed.
9
10         * bindings/js/SerializedScriptValue.cpp:
11         (WebCore::CloneDeserializer::readLittleEndian):
12         (WebCore::CloneDeserializer::readString):
13         * plugins/PluginDatabase.cpp:
14         (WebCore::readTime):
15
16 2010-09-08  Antonio Gomes  <agomes@rim.com>
17
18         Reviewed by Daniel Bates.
19
20         Make FocusController::focusedOrMainFrame method const
21         https://bugs.webkit.org/show_bug.cgi?id=45406
22
23         No new tests.
24
25         * page/FocusController.cpp:
26         (WebCore::FocusController::focusedOrMainFrame):
27         * page/FocusController.h:
28
29 2010-09-08  Jian Li  <jianli@chromium.org>
30
31         Reviewed by Darin Adler.
32
33         Fix a problem in createCanonicalUUIDString that causes the last digit
34         missing on Linux.
35         https://bugs.webkit.org/show_bug.cgi?id=45412
36
37         This is caused by not including the final null character into the count
38         that is provided to fgets.
39
40         This is covered by the existing test: send-form-data-with-sliced-file.html.
41
42         * platform/UUID.cpp:
43         (WebCore::createCanonicalUUIDString):
44
45 2010-09-08  Nico Weber  <thakis@chromium.org>
46
47         Reviewed by Dimitri Glazkov.
48
49         chromium/mac: Fix overrelease in ImageLayerChromium
50         https://bugs.webkit.org/show_bug.cgi?id=45360
51
52         Only release colorSpace if we created it.
53
54         * platform/graphics/chromium/ImageLayerChromium.cpp:
55         (WebCore::ImageLayerChromium::updateContents):
56
57 2010-09-08  Robert Hogan  <robert@webkit.org>
58
59         Reviewed by Antonio Gomes.
60
61         Remove some unnecessary duplicate calls to string functions
62
63         https://bugs.webkit.org/show_bug.cgi?id=45314
64
65         * platform/network/curl/ResourceHandleManager.cpp:
66         (WebCore::parseDataUrl):
67         * websockets/WebSocketChannel.cpp:
68         (WebCore::WebSocketChannel::send):
69
70 2010-09-08  Peter Kasting  <pkasting@google.com>
71
72         Not reviewed, fallout from http://trac.webkit.org/changeset/67001
73
74         Fix compile failures and add svn:eol-style on two new files.
75
76         * platform/ScrollAnimator.h: Added property svn:eol-style.
77         * platform/ScrollAnimatorWin.cpp: Added property svn:eol-style.
78         * platform/win/PopupMenuWin.cpp: Fix compile errors.
79         (WebCore::PopupMenuWin::scrollToRevealSelection):
80         (WebCore::PopupMenuWin::scrollSize):
81
82 2010-09-08  James Robinson  <jamesr@chromium.org>
83
84         Reviewed by Kenneth Russell.
85
86         [chromium] Force canvas 2d draw calls to happen in software if a gradient, pattern, shadow, or clip are active
87         https://bugs.webkit.org/show_bug.cgi?id=45405
88
89         This forces all draw calls to happen in software instead of hardware if there is a fill pattern, gradient,
90         shadow, or clip applied; at least until we can handle these in hardware.  Otherwise the pattern/gradient/etc
91         is completely ignored by the hardware drawing routine and we render incorrectly.
92
93         The test is slightly convervative - for example it will force drawImage() calls to happen in software if a
94         fill gradient is set even though it's irrelevant.  This doesn't seem to be an issue in practice and we
95         can tighten the checks later if needed.
96
97         Tested by fast/canvas/canvas-incremental-repaint.html.
98
99         * platform/graphics/skia/GraphicsContextSkia.cpp:
100         (WebCore::GraphicsContext::canvasClip):
101         (WebCore::GraphicsContext::fillRect):
102         * platform/graphics/skia/ImageBufferSkia.cpp:
103         (WebCore::ImageBuffer::draw):
104         * platform/graphics/skia/ImageSkia.cpp:
105         (WebCore::BitmapImage::draw):
106         (WebCore::BitmapImageSingleFrameSkia::draw):
107         * platform/graphics/skia/PlatformContextSkia.cpp:
108         (WebCore::PlatformContextSkia::State::State):
109         (WebCore::PlatformContextSkia::canvasClipPath):
110         (WebCore::PlatformContextSkia::canAccelerate):
111         * platform/graphics/skia/PlatformContextSkia.h:
112
113 2010-09-08  Peter Kasting  <pkasting@google.com>
114
115         Reviewed by David Hyatt.
116
117         Add smooth scrolling framework, and a Windows implementation.
118         https://bugs.webkit.org/show_bug.cgi?id=32356
119
120         * CMakeLists.txt: Add ScrollAnimator.
121         * GNUmakefile.am: Add ScrollAnimator.
122         * WebCore.gyp/WebCore.gyp: Add Windows ScrollAnimator.
123         * WebCore.gypi: Add ScrollAnimator.
124         * WebCore.pro: Add ScrollAnimator.
125         * WebCore.vcproj/WebCore.vcproj: Add ScrollAnimator.
126         * WebCore.xcodeproj/project.pbxproj: Add ScrollAnimator.
127         * platform/ScrollAnimator.cpp: Added base implementation that does no animation.
128         (WebCore::ScrollAnimator::create):
129         (WebCore::ScrollAnimator::scroll):
130         (WebCore::ScrollAnimator::setScrollPositionAndStopAnimation):
131         * platform/ScrollAnimator.h: Added base implementation that does no animation.
132         (WebCore::ScrollAnimator::ScrollAnimator):
133         (WebCore::ScrollAnimator::~ScrollAnimator):
134         * platform/ScrollAnimatorWin.cpp: Added Windows subclass that animates scrolls.
135         (WebCore::ScrollAnimator::create):
136         (WebCore::ScrollAnimatorWin::PerAxisData::PerAxisData):
137         (WebCore::ScrollAnimatorWin::ScrollAnimatorWin):
138         (WebCore::ScrollAnimatorWin::~ScrollAnimatorWin):
139         (WebCore::ScrollAnimatorWin::scroll):
140         (WebCore::ScrollAnimatorWin::setScrollPositionAndStopAnimation):
141         (WebCore::ScrollAnimatorWin::accelerationTime):
142         (WebCore::ScrollAnimatorWin::animationTimerFired):
143         (WebCore::ScrollAnimatorWin::stopAnimationTimerIfNeeded):
144         (WebCore::ScrollAnimatorWin::animateScroll):
145         * platform/ScrollAnimatorWin.h: Added Windows subclass that animates scrolls.
146         * platform/ScrollView.cpp: Implement new ScrollbarClient functions.  Allow wheel scrolls to be animated.
147         (WebCore::ScrollView::scrollSize):
148         (WebCore::ScrollView::setScrollOffsetFromAnimation):
149         (WebCore::ScrollView::updateScrollbars):
150         (WebCore::ScrollView::wheelEvent):
151         * platform/ScrollView.h: Implement new ScrollbarClient functions.
152         * platform/Scrollbar.cpp: Allow ScrollAnimator to handle scrolls if present.
153         (WebCore::Scrollbar::setValue):
154         (WebCore::Scrollbar::scroll):
155         (WebCore::Scrollbar::moveThumb):
156         (WebCore::Scrollbar::setCurrentPos):
157         (WebCore::Scrollbar::mouseMoved):
158         * platform/Scrollbar.h:
159         * platform/ScrollbarClient.cpp: Added to avoid having to make ScrollAnimator.h non-private.
160         (WebCore::ScrollbarClient::ScrollbarClient):
161         (WebCore::ScrollbarClient::~ScrollbarClient):
162         (WebCore::ScrollbarClient::scroll):
163         (WebCore::ScrollbarClient::setScrollPositionAndStopAnimation):
164         * platform/ScrollbarClient.h: Add hooks for ScrollAnimator.
165         (WebCore::ScrollbarClient::convertFromScrollbarToContainingView):
166         (WebCore::ScrollbarClient::convertFromContainingViewToScrollbar):
167         * platform/gtk/MainFrameScrollbarGtk.cpp:
168         (MainFrameScrollbarGtk::gtkValueChanged):
169         * platform/qt/ScrollbarQt.cpp: Use scroll() in preference to setValue().
170         (WebCore::Scrollbar::contextMenu):
171         * platform/win/PopupMenuWin.cpp: Implement new ScrollbarClient functions.
172         (WebCore::PopupMenuWin::scrollSize):
173         (WebCore::PopupMenuWin::setScrollOffsetFromAnimation):
174         * platform/win/PopupMenuWin.h: Implement new ScrollbarClient functions.
175         * rendering/RenderDataGrid.cpp: Implement new ScrollbarClient functions.
176         (WebCore::RenderDataGrid::scrollSize):
177         (WebCore::RenderDataGrid::setScrollOffsetFromAnimation):
178         * rendering/RenderDataGrid.h: Implement new ScrollbarClient functions.
179         * rendering/RenderLayer.cpp: Implement new ScrollbarClient functions.
180         (WebCore::RenderLayer::scrollToOffset):
181         (WebCore::RenderLayer::scrollSize):
182         (WebCore::RenderLayer::setScrollOffsetFromAnimation):
183         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
184         * rendering/RenderLayer.h: Implement new ScrollbarClient functions.
185         * rendering/RenderListBox.cpp: Implement new ScrollbarClient functions.
186         (WebCore::RenderListBox::scrollToRevealElementAtListIndex):
187         (WebCore::RenderListBox::scrollSize):
188         (WebCore::RenderListBox::setScrollOffsetFromAnimation):
189         (WebCore::RenderListBox::setScrollTop):
190         * rendering/RenderListBox.h: Implement new ScrollbarClient functions.
191
192 2010-09-08  Ryosuke Niwa  <rniwa@webkit.org>
193
194         Reviewed by Tony Chang.
195
196         applyInlineStyleToRange needs cleanup
197         https://bugs.webkit.org/show_bug.cgi?id=45008
198
199         Removed rangeIsEmpty and extracted the entire loop into applyInlineStyleToNodeRange.
200         applyInlineStyleToRange is now a wrapper that fixes range and passes it on to applyInlineStyleToNodeRange.
201
202         No new tests are added since this is a cleanup.
203
204         * editing/ApplyStyleCommand.cpp:
205         (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Cleaned up.
206         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): Extracted from applyInlineStyleToRange.
207         * editing/ApplyStyleCommand.h:
208
209 2010-09-08  Andy Estes  <aestes@apple.com>
210
211         Rubber-stamped by Darin Adler.
212
213         Incorporate additional feedback from
214         https://bugs.webkit.org/show_bug.cgi?id=45364.
215
216         * html/HTMLObjectElement.cpp:
217         (WebCore::HTMLObjectElement::parametersForPlugin): Rename urlParam to
218         urlParameter.
219         * loader/SubframeLoader.h: Add argument names to the definition of
220         SubframeLoader::resourceWillUsePlugin().
221
222 2010-09-07  Oliver Hunt  <oliver@apple.com>
223
224         Reviewed by Anders Carlsson.
225
226         Support SerializedScriptValue in WebKit2
227         https://bugs.webkit.org/show_bug.cgi?id=45340
228
229         Add a new constructor that allows WebKit2 to create a SerializedScriptValue
230         directly from serialized data.
231
232         * WebCore.exp.in:
233         * bindings/js/SerializedScriptValue.h:
234         (WebCore::SerializedScriptValue::adopt):
235         (WebCore::SerializedScriptValue::data):
236
237 2010-09-08  Andy Estes  <aestes@apple.com>
238
239         Reviewed by Eric Carlson.
240
241         Fallback content should be rendered when an <object> doesn't specify a
242         data, type or classid attribute.
243         https://bugs.webkit.org/show_bug.cgi?id=45364
244         <rdar://problem/8375816>
245
246         HTML5 says that if no data or type attribute is specified on an <object>,
247         fallback content should be rendered. However, WebKit has traditionally
248         supported specifying a URL and MIME type in <param> elements. 
249
250         To more closely match the spec while maintaining compatibility with
251         content that relied on our old behavior, we will continue to load
252         a resource specified by <param> elements if we can determine a priori
253         that it will be handled by a plug-in. 
254
255         If we can't make this determination, and the <object> element has no
256         "data" or "type" attribute, the <param> elements will be ignored and
257         fallback content will be rendered. Otherwise, there is no change in
258         behavior.
259
260         * html/HTMLObjectElement.cpp:
261         (WebCore::HTMLObjectElement::parametersForPlugin): If an empty url is
262         passed to this function and a <param> exists that specifies a url that
263         references a plug-in resource, set it to url, making it the url that
264         will be loaded by the <object> element.
265         (WebCore::HTMLObjectElement::updateWidget): If no type attribute was
266         specified, but there is a classid attribute, try to map the classid to
267         a MIME type. This needs to be done before calling
268         HTMLObjectElement::parametersForPlugin().
269         * loader/SubframeLoader.cpp:
270         (WebCore::SubframeLoader::resourceWillUsePlugin): Make a public method
271         that determines if a resource will load a plug-in based on its url and
272         MIME type. This is equivalent to calling
273         SubframeLoader::shouldUsePlugin(), but does not burden the caller with
274         the details of fallback content.
275         * loader/SubframeLoader.h:
276
277 2010-09-08  Pavel Podivilov  <podivilov@chromium.org>
278
279         Reviewed by Yury Semikhatsky.
280
281         Web Inspector: add breakpoints to source frame after content is loaded.
282         https://bugs.webkit.org/show_bug.cgi?id=43056
283
284         * inspector/front-end/ScriptsPanel.js:
285         (WebInspector.ScriptsPanel.prototype._resourceLoadingFinished):
286         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
287         * inspector/front-end/SourceView.js:
288         (WebInspector.SourceView.prototype._contentLoaded):
289
290 2010-09-08  Andreas Kling  <andreas.kling@nokia.com>
291
292         Reviewed by Kenneth Rohde Christiansen.
293
294         Canvas: Remove unnecessary null-check of canvas() in getImageData()
295         https://bugs.webkit.org/show_bug.cgi?id=45394
296
297         canvas() is already dereferenced earlier in the function so there is
298         no use in checking it for null later.
299
300         * html/canvas/CanvasRenderingContext2D.cpp:
301         (WebCore::CanvasRenderingContext2D::getImageData):
302
303 2010-09-08  Philippe Normand  <pnormand@igalia.com>
304
305         Reviewed by Eric Carlson.
306
307         [GStreamer] cache media duration in READY instead of PLAYING
308         https://bugs.webkit.org/show_bug.cgi?id=39053
309
310         New cacheDuration private method used to in updateStates() and
311         durationChanged().
312
313         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
314         (WebCore::MediaPlayerPrivateGStreamer::updateStates):
315         (WebCore::MediaPlayerPrivateGStreamer::cacheDuration):
316         (WebCore::MediaPlayerPrivateGStreamer::durationChanged):
317         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
318
319 2010-09-08  Martin Robinson  <mrobinson@igalia.com>
320
321         Reviewed by Xan Lopez.
322
323         [GTK] Need a WebSocket implementation
324         https://bugs.webkit.org/show_bug.cgi?id=45197
325
326         Add a GIO-based WebSocket implementation. This does not yet support
327         SSL sockets or proxies, but these should be possible to add as support
328         arrives in GLib/GIO for them.
329
330         * platform/network/soup/SocketStreamHandle.h:
331         * platform/network/soup/SocketStreamHandleSoup.cpp: Add a GIO-based WebSocket implementation.
332         (WebCore::isActiveHandle): Added.
333         (WebCore::deactivateHandle): Added.
334         (WebCore::SocketStreamHandle::SocketStreamHandle): Filled out stub.
335         (WebCore::SocketStreamHandle::~SocketStreamHandle): Ditto.
336         (WebCore::SocketStreamHandle::connected): Added.
337         (WebCore::SocketStreamHandle::readBytes): Added.
338         (WebCore::SocketStreamHandle::writeReady): Added.
339         (WebCore::SocketStreamHandle::platformSend): Filled out stub.
340         (WebCore::SocketStreamHandle::platformClose): Filled out stub.
341         (WebCore::SocketStreamHandle::beginWaitingForSocketWritability): Added.
342         (WebCore::SocketStreamHandle::stopWaitingForSocketWritability):
343         (WebCore::connectedCallback): Added.
344         (WebCore::readReadyCallback): Added.
345         (WebCore::writeReadyCallback): Added.
346
347 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
348
349         Reviewed by Dirk Schulze.
350
351         [Cairo] Actually use the antialias parameter of GraphicsContext::clipConvexPolygon
352         https://bugs.webkit.org/show_bug.cgi?id=45355
353
354         r63864 added an additional boolean parameter to GraphicsContext::clipConvexPolygon,
355         which determines whether or not to render the render the clip with anti-aliasing
356         or not. The Cairo implementation now uses that parameter to determine the argument
357         to pass to cairo_set_antialias(...) when clipping.
358
359         Test: This is tested by many tests in fast/borders.
360
361         * platform/graphics/cairo/GraphicsContextCairo.cpp:
362         (WebCore::GraphicsContext::clipConvexPolygon): Actually use the boolean antialias parameter.
363
364 2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
365
366         Reviewed by Kenneth Rohde Christiansen.
367
368         [EFL] Support to enable HTML5's Video based on gstreamer in WebKit-EFL
369         https://bugs.webkit.org/show_bug.cgi?id=44098
370
371         To support video of HTML5 based on gstreamer, add files regarding gstreamer to
372         CMakeListsEfl.txt.
373
374         * CMakeListsEfl.txt:
375
376 2010-09-08  Jan E Hanssen  <jhanssen@sencha.com>
377
378         Reviewed by Dirk Schulze.
379
380         [Qt] PathQt should use the QPainterPath functionality for calculations
381         https://bugs.webkit.org/show_bug.cgi?id=43837
382
383         Change PathQt to use the built-in functionality of QPainterPath for
384         calculating length(), pointAtLength() and normalAngleAtLength().
385
386         * platform/graphics/Path.cpp:
387         * platform/graphics/qt/PathQt.cpp:
388         (WebCore::Path::length):
389         (WebCore::Path::pointAtLength):
390         (WebCore::Path::normalAngleAtLength):
391
392 2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
393
394         Reviewed by Dirk Schulze.
395
396         [WML] Remove create() function in WMLTaskElement because of build break.
397         https://bugs.webkit.org/show_bug.cgi?id=44954
398
399         Remove create() function in WMLTaskElement.cpp because of build breaks.
400
401         * wml/WMLTaskElement.cpp:
402         * wml/WMLTaskElement.h:
403
404 2010-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
405
406         Reviewed by Dirk Schulze.
407
408         [WML] Add create functions to WML.
409         https://bugs.webkit.org/show_bug.cgi?id=44950
410
411         There are missing definitions of create function in WML area. 
412         So, there are build breaks when enabling WML. The create functions and the construction 
413         are added. In addition, a style error and duplicated adoptRef usage are fixed.
414
415         * wml/WMLDocument.h:
416         (WebCore::WMLDocument::create):
417         * wml/WMLFormControlElement.h:
418         * wml/WMLIntrinsicEvent.cpp:
419         (WebCore::WMLIntrinsicEvent::WMLIntrinsicEvent):
420         * wml/WMLIntrinsicEvent.h:
421
422 2010-09-08  Nico Weber  <thakis@chromium.org>
423
424         Reviewed by Kenneth Russell.
425
426         chromium/mac: Fix crash with compositor due to missing current NSGraphicsContext
427         https://bugs.webkit.org/show_bug.cgi?id=45354
428
429         * platform/graphics/chromium/ContentLayerChromium.cpp:
430         (WebCore::ContentLayerChromium::updateContents): Set a current local context.
431
432 2010-09-08  Justin Schuh  <jschuh@chromium.org>
433
434         Reviewed by Nikolas Zimmermann.
435
436         NULL deref when use target is reset, then set to display:none
437         https://bugs.webkit.org/show_bug.cgi?id=45345
438
439         Move the NULL check on shadowRoot earlier in SVGUseElement::recalcStyle
440
441         Test: svg/custom/use-display-none.svg
442
443         * svg/SVGUseElement.cpp:
444         (WebCore::SVGUseElement::recalcStyle):
445
446 2010-08-30  Maciej Stachowiak  <mjs@apple.com>
447
448         Reviewed by Darin Adler.
449
450         Handle MediaQueryExp memory management exclusively with smart pointers
451         https://bugs.webkit.org/show_bug.cgi?id=44874
452
453         Gace MediaQueryExp a create function, made the constructor private, and followed
454         the implications. The one tricky bit was using a non-copying sort to sort
455         the Vector<OwnPtr<MediaQueryExp> > in the MediaQuery constructor.
456         
457         * ForwardingHeaders/wtf/NonCopyingSort.h: Added.
458         * css/CSSGrammar.y:
459         * css/CSSParser.cpp:
460         (WebCore::CSSParser::~CSSParser):
461         (WebCore::CSSParser::createFloatingMediaQueryExp):
462         (WebCore::CSSParser::createFloatingMediaQueryExpList):
463         (WebCore::CSSParser::sinkFloatingMediaQueryExpList):
464         (WebCore::CSSParser::createFloatingMediaQuery):
465         * css/CSSParser.h:
466         * css/MediaList.cpp:
467         * css/MediaQuery.cpp:
468         (WebCore::expressionCompare):
469         (WebCore::MediaQuery::MediaQuery):
470         (WebCore::MediaQuery::~MediaQuery):
471         * css/MediaQuery.h:
472         (WebCore::MediaQuery::expressions):
473         * css/MediaQueryEvaluator.cpp:
474         (WebCore::MediaQueryEvaluator::eval):
475         * css/MediaQueryExp.h:
476         (WebCore::MediaQueryExp::create):
477
478 2010-09-08  Adam Barth  <abarth@webkit.org>
479
480         Reviewed by Maciej Stachowiak.
481
482         Remove unused member variable from DecodedDocumentParser
483         https://bugs.webkit.org/show_bug.cgi?id=45379
484
485         This member variable isn't used because of the recent split of
486         TextDocumentParser and TextViewSourceParser.
487
488         * dom/DecodedDataDocumentParser.cpp:
489         (WebCore::DecodedDataDocumentParser::DecodedDataDocumentParser):
490         * dom/DecodedDataDocumentParser.h:
491         * dom/ScriptableDocumentParser.cpp:
492         (WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
493         * dom/ScriptableDocumentParser.h:
494
495 2010-09-08  Csaba Osztrogonác  <ossy@webkit.org>
496
497         Reviewed by Andreas Kling.
498
499         Fix warning in rendering/RenderBlock.cpp.
500         https://bugs.webkit.org/show_bug.cgi?id=45373
501
502         * rendering/RenderBlock.cpp:
503         (WebCore::RenderBlock::hitTestColumns): Suggested parentheses added around && within ||
504
505 2010-09-08  Mario Sanchez Prada  <msanchez@igalia.com>
506
507         Reviewed by Martin Robinson.
508
509         [Gtk] A list item's number/bullet should not be a child of that list item
510         https://bugs.webkit.org/show_bug.cgi?id=45190
511
512         Ignore list markers and prefix them to the text for the item
513
514         * accessibility/gtk/AccessibilityObjectAtk.cpp:
515         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
516         Make list markers ignore accessibility for the GTK port.
517         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
518         (webkit_accessible_text_get_text): Prefix the text of a marker
519         along with the accessible text for its list item's AtkObject
520
521 2010-09-08  Adam Barth  <abarth@webkit.org>
522
523         Rubber-stamped by Eric Seidel.
524
525         Rename DocLoader to CachedResourceLoader because that's what it does.
526
527         * Android.mk:
528         * CMakeLists.txt:
529         * GNUmakefile.am:
530         * WebCore.gypi:
531         * WebCore.pro:
532         * WebCore.vcproj/WebCore.vcproj:
533         * WebCore.xcodeproj/project.pbxproj:
534         * css/CSSCursorImageValue.cpp:
535         (WebCore::CSSCursorImageValue::cachedImage):
536         * css/CSSCursorImageValue.h:
537         * css/CSSFontFaceSource.cpp:
538         (WebCore::CSSFontFaceSource::getFontData):
539         * css/CSSFontSelector.cpp:
540         (WebCore::CSSFontSelector::cachedResourceLoader):
541         (WebCore::CSSFontSelector::addFontFaceRule):
542         * css/CSSFontSelector.h:
543         * css/CSSImageValue.cpp:
544         (WebCore::CSSImageValue::cachedImage):
545         * css/CSSImageValue.h:
546         * css/CSSImportRule.cpp:
547         (WebCore::CSSImportRule::insertedIntoParent):
548         * css/CSSStyleSelector.cpp:
549         (WebCore::CSSStyleSelector::loadPendingImages):
550         * css/CSSStyleSheet.h:
551         * dom/Document.cpp:
552         (WebCore::Document::Document):
553         (WebCore::Document::~Document):
554         (WebCore::Document::implicitClose):
555         * dom/Document.h:
556         (WebCore::Document::cachedResourceLoader):
557         * dom/ProcessingInstruction.cpp:
558         (WebCore::ProcessingInstruction::checkStyleSheet):
559         * dom/ScriptElement.cpp:
560         (WebCore::ScriptElementData::requestScript):
561         * dom/XMLDocumentParser.cpp:
562         * dom/XMLDocumentParser.h:
563         * dom/XMLDocumentParserLibxml2.cpp:
564         (WebCore::matchFunc):
565         (WebCore::shouldAllowExternalLoad):
566         (WebCore::openFunc):
567         (WebCore::XMLDocumentParser::doWrite):
568         (WebCore::XMLDocumentParser::endElementNs):
569         (WebCore::XMLDocumentParser::initializeParserContext):
570         (WebCore::XMLDocumentParser::doEnd):
571         (WebCore::xmlDocPtrForString):
572         * dom/XMLDocumentParserQt.cpp:
573         (WebCore::XMLDocumentParser::parseEndElement):
574         * dom/XMLDocumentParserScope.cpp:
575         (WebCore::XMLDocumentParserScope::XMLDocumentParserScope):
576         (WebCore::XMLDocumentParserScope::~XMLDocumentParserScope):
577         * dom/XMLDocumentParserScope.h:
578         * editing/Editor.cpp:
579         (WebCore::Editor::paste):
580         * editing/mac/EditorMac.mm:
581         (WebCore::Editor::paste):
582         * html/HTMLLinkElement.cpp:
583         (WebCore::HTMLLinkElement::process):
584         * html/parser/CSSPreloadScanner.cpp:
585         (WebCore::CSSPreloadScanner::emitRule):
586         * html/parser/HTMLPreloadScanner.cpp:
587         (WebCore::HTMLNames::PreloadTask::preload):
588         * html/parser/HTMLScriptRunner.cpp:
589         (WebCore::HTMLScriptRunner::requestPendingScript):
590         * inspector/InspectorResource.cpp:
591         (WebCore::InspectorResource::cachedResource):
592         * loader/Cache.cpp:
593         (WebCore::Cache::requestResource):
594         (WebCore::Cache::requestUserCSSStyleSheet):
595         (WebCore::Cache::revalidateResource):
596         (WebCore::Cache::addCachedResourceLoader):
597         (WebCore::Cache::removeCachedResourceLoader):
598         * loader/Cache.h:
599         * loader/CachedCSSStyleSheet.h:
600         * loader/CachedFont.cpp:
601         (WebCore::CachedFont::load):
602         (WebCore::CachedFont::beginLoadIfNeeded):
603         * loader/CachedFont.h:
604         * loader/CachedImage.cpp:
605         (WebCore::CachedImage::load):
606         (WebCore::CachedImage::maximumDecodedImageSize):
607         * loader/CachedImage.h:
608         * loader/CachedResource.cpp:
609         (WebCore::CachedResource::CachedResource):
610         (WebCore::CachedResource::~CachedResource):
611         (WebCore::CachedResource::load):
612         * loader/CachedResource.h:
613         (WebCore::CachedResource::load):
614         (WebCore::CachedResource::setCachedResourceLoader):
615         * loader/CachedResourceLoader.cpp: Copied from WebCore/loader/DocLoader.cpp.
616         (WebCore::CachedResourceLoader::CachedResourceLoader):
617         (WebCore::CachedResourceLoader::~CachedResourceLoader):
618         (WebCore::CachedResourceLoader::frame):
619         (WebCore::CachedResourceLoader::checkForReload):
620         (WebCore::CachedResourceLoader::requestImage):
621         (WebCore::CachedResourceLoader::requestFont):
622         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
623         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
624         (WebCore::CachedResourceLoader::requestScript):
625         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
626         (WebCore::CachedResourceLoader::requestLinkPrefetch):
627         (WebCore::CachedResourceLoader::canRequest):
628         (WebCore::CachedResourceLoader::requestResource):
629         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
630         (WebCore::CachedResourceLoader::setAutoLoadImages):
631         (WebCore::CachedResourceLoader::cachePolicy):
632         (WebCore::CachedResourceLoader::removeCachedResource):
633         (WebCore::CachedResourceLoader::setLoadInProgress):
634         (WebCore::CachedResourceLoader::checkCacheObjectStatus):
635         (WebCore::CachedResourceLoader::incrementRequestCount):
636         (WebCore::CachedResourceLoader::decrementRequestCount):
637         (WebCore::CachedResourceLoader::requestCount):
638         (WebCore::CachedResourceLoader::preload):
639         (WebCore::CachedResourceLoader::checkForPendingPreloads):
640         (WebCore::CachedResourceLoader::requestPreload):
641         (WebCore::CachedResourceLoader::clearPreloads):
642         (WebCore::CachedResourceLoader::clearPendingPreloads):
643         (WebCore::CachedResourceLoader::printPreloadStats):
644         * loader/CachedResourceLoader.h: Copied from WebCore/loader/DocLoader.h.
645         * loader/CachedScript.h:
646         * loader/CachedXSLStyleSheet.h:
647         * loader/DocLoader.cpp: Removed.
648         * loader/DocLoader.h: Removed.
649         * loader/DocumentLoader.cpp:
650         (WebCore::DocumentLoader::isLoadingInAPISense):
651         (WebCore::DocumentLoader::subresource):
652         (WebCore::DocumentLoader::getSubresources):
653         * loader/FrameLoader.cpp:
654         (WebCore::numRequests):
655         (WebCore::FrameLoader::stopLoading):
656         (WebCore::FrameLoader::didBeginDocument):
657         * loader/HistoryController.cpp:
658         (WebCore::HistoryController::createItem):
659         * loader/ImageLoader.cpp:
660         (WebCore::ImageLoader::updateFromElement):
661         * loader/Request.cpp:
662         (WebCore::Request::Request):
663         * loader/Request.h:
664         (WebCore::Request::cachedResourceLoader):
665         * loader/loader.cpp:
666         (WebCore::Loader::load):
667         (WebCore::Loader::cancelRequests):
668         (WebCore::Loader::Host::servePendingRequests):
669         (WebCore::Loader::Host::didFinishLoading):
670         (WebCore::Loader::Host::didFail):
671         (WebCore::Loader::Host::didReceiveResponse):
672         (WebCore::Loader::Host::cancelPendingRequests):
673         (WebCore::Loader::Host::cancelRequests):
674         * loader/loader.h:
675         * page/DragController.cpp:
676         (WebCore::DragController::concludeEditDrag):
677         * page/Frame.cpp:
678         * page/FrameView.cpp:
679         (WebCore::FrameView::checkStopDelayingDeferredRepaints):
680         (WebCore::FrameView::updateDeferredRepaintDelay):
681         * page/Settings.cpp:
682         (WebCore::setLoadsImagesAutomaticallyInAllFrames):
683         * platform/android/TemporaryLinkStubs.cpp:
684         (WebCore::CheckCacheObjectStatus):
685         * platform/network/android/ResourceHandleAndroid.cpp:
686         (WebCore::ResourceHandle::start):
687         * platform/network/cf/ResourceHandleCFNet.cpp:
688         * platform/network/curl/ResourceHandleCurl.cpp:
689         * platform/network/mac/ResourceHandleMac.mm:
690         * platform/network/qt/ResourceHandleQt.cpp:
691         * platform/network/soup/ResourceHandleSoup.cpp:
692         * platform/network/win/ResourceHandleWin.cpp:
693         * svg/SVGFEImageElement.cpp:
694         (WebCore::SVGFEImageElement::requestImageResource):
695         * svg/SVGFontFaceUriElement.cpp:
696         (WebCore::SVGFontFaceUriElement::loadFont):
697         * workers/Worker.cpp:
698         * xml/XSLImportRule.cpp:
699         (WebCore::XSLImportRule::loadSheet):
700         * xml/XSLStyleSheet.h:
701         * xml/XSLStyleSheetLibxslt.cpp:
702         (WebCore::XSLStyleSheet::cachedResourceLoader):
703         (WebCore::XSLStyleSheet::parseString):
704         * xml/XSLStyleSheetQt.cpp:
705         (WebCore::XSLStyleSheet::cachedResourceLoader):
706         * xml/XSLTProcessor.cpp:
707         * xml/XSLTProcessorLibxslt.cpp:
708         (WebCore::docLoaderFunc):
709         (WebCore::setXSLTLoadCallBack):
710         (WebCore::xmlDocPtrFromNode):
711         (WebCore::XSLTProcessor::transformToString):
712
713 2010-09-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
714
715         Reviewed by Eric Carlson.
716
717         Add mediaPlayerPlaybackStateChanged to MediaPlayerClient
718
719         https://bugs.webkit.org/show_bug.cgi?id=45263
720
721         The platform backend may change state, for example as a result
722         of an external plugin controlling the backend, so we need to
723         react to this situation by syncing up the WebCore state with the
724         platform backend.
725
726         We call playInternal()/pauseInternal() depending on the backend
727         state, to trigger the corresponding DOM events to match the state.
728
729         updatePlayState() is then refactored to take into account the
730         situation where the backend is already in the correct state but
731         WebCore is not, so that we update the playback progress timer
732         and set m_playing correctly.
733
734         updatePlayState() changes Should be covered by existing tests.
735
736         * html/HTMLMediaElement.cpp:
737         (WebCore::HTMLMediaElement::mediaPlayerPlaybackStateChanged):
738         (WebCore::HTMLMediaElement::updatePlayState):
739         * html/HTMLMediaElement.h:
740         * platform/graphics/MediaPlayer.cpp:
741         (WebCore::MediaPlayer::playbackStateChanged):
742         * platform/graphics/MediaPlayer.h:
743         (WebCore::MediaPlayerClient::mediaPlayerPlaybackStateChanged):
744
745 2010-09-08  Adam Barth  <abarth@webkit.org>
746
747         Reviewed by Eric Seidel.
748
749         TextDocument doesn't belong in WebCore/loader
750         https://bugs.webkit.org/show_bug.cgi?id=45346
751
752         TextDocument has nothing to do with loading.  It turns out that it
753         should be in WebCore/html because TextDocument is actually a subclass
754         of HTMLDocument (in quirks mode, no less).
755
756         * Android.mk:
757         * CMakeLists.txt:
758         * GNUmakefile.am:
759         * WebCore.gypi:
760         * WebCore.pro:
761         * WebCore.vcproj/WebCore.vcproj:
762         * WebCore.xcodeproj/project.pbxproj:
763         * html/TextDocument.cpp: Renamed from WebCore/loader/TextDocument.cpp.
764         (WebCore::TextDocument::TextDocument):
765         (WebCore::TextDocument::createParser):
766         * html/TextDocument.h: Renamed from WebCore/loader/TextDocument.h.
767         (WebCore::TextDocument::create):
768
769 2010-09-08  Adam Barth  <abarth@webkit.org>
770
771         Reviewed by Eric Seidel.
772
773         Create TextViewSourceParser
774         https://bugs.webkit.org/show_bug.cgi?id=45343
775
776         Rather than have the view source document set a flag on
777         HTMLViewSourceParser to indicate whether we're parsing a text document,
778         this patch creates a TextViewSourceParser for parsing text documents in
779         view-source mode.  Like the TextDocumentParser, the
780         TextViewSourceParser implements this functionality by subclassing its
781         HTML counterpart.
782
783         * Android.mk:
784         * CMakeLists.txt:
785         * GNUmakefile.am:
786         * WebCore.gypi:
787         * WebCore.pro:
788         * WebCore.vcproj/WebCore.vcproj:
789         * WebCore.xcodeproj/project.pbxproj:
790         * html/HTMLViewSourceDocument.cpp:
791         (WebCore::HTMLViewSourceDocument::createParser):
792         * html/parser/HTMLViewSourceParser.cpp:
793         * html/parser/HTMLViewSourceParser.h:
794         (WebCore::HTMLViewSourceParser::tokenizer):
795         * html/parser/TextViewSourceParser.cpp: Added.
796         (WebCore::TextViewSourceParser::TextViewSourceParser):
797         (WebCore::TextViewSourceParser::~TextViewSourceParser):
798         * html/parser/TextViewSourceParser.h: Added.
799         (WebCore::TextViewSourceParser::create):
800
801 2010-09-08  Adam Barth  <abarth@webkit.org>
802
803         Reviewed by Darin Adler.
804
805         Move HTMLInputStream to WebCore/html/parser
806         https://bugs.webkit.org/show_bug.cgi?id=45339
807
808         I forgot to move this file before.
809
810         * GNUmakefile.am:
811         * WebCore.gypi:
812         * WebCore.vcproj/WebCore.vcproj:
813         * WebCore.xcodeproj/project.pbxproj:
814         * html/parser/HTMLInputStream.h: Renamed from WebCore/html/HTMLInputStream.h.
815         (WebCore::HTMLInputStream::HTMLInputStream):
816         (WebCore::HTMLInputStream::appendToEnd):
817         (WebCore::HTMLInputStream::insertAtCurrentInsertionPoint):
818         (WebCore::HTMLInputStream::hasInsertionPoint):
819         (WebCore::HTMLInputStream::markEndOfFile):
820         (WebCore::HTMLInputStream::haveSeenEndOfFile):
821         (WebCore::HTMLInputStream::current):
822         (WebCore::HTMLInputStream::splitInto):
823         (WebCore::HTMLInputStream::mergeFrom):
824         (WebCore::InsertionPointRecord::InsertionPointRecord):
825         (WebCore::InsertionPointRecord::~InsertionPointRecord):
826
827 2010-09-08  Adam Barth  <abarth@webkit.org>
828
829         Reviewed by Eric Seidel.
830
831         TextDocument should come in from the cold
832         https://bugs.webkit.org/show_bug.cgi?id=45334
833
834         Previously, TextDocument reinvented the wheel to parse text.  This
835         patch replaces TextDocument's hand-rolled parser with a parser built on
836         the HTML parser infrustructure, which gives us that stuff for free.  I
837         also disentangled TextDocument from HTMLViewSourceDocument.
838
839         In a future patch, I'll move TextDocument out of the "loader" directory.
840
841         * Android.mk:
842         * CMakeLists.txt:
843         * GNUmakefile.am:
844         * WebCore.gypi:
845         * WebCore.pro:
846         * WebCore.vcproj/WebCore.vcproj:
847         * WebCore.xcodeproj/project.pbxproj:
848         * html/HTMLViewSourceDocument.cpp:
849         (WebCore::HTMLViewSourceDocument::createParser):
850         * html/HTMLViewSourceDocument.h:
851         * html/parser/HTMLTreeBuilder.cpp:
852         (WebCore::HTMLTreeBuilder::constructTreeFromToken):
853         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
854         * html/parser/HTMLTreeBuilder.h:
855         * html/parser/HTMLViewSourceParser.cpp:
856         (WebCore::HTMLViewSourceParser::forcePlaintext):
857         * html/parser/HTMLViewSourceParser.h:
858         * html/parser/TextDocumentParser.cpp: Added.
859         (WebCore::TextDocumentParser::TextDocumentParser):
860         (WebCore::TextDocumentParser::~TextDocumentParser):
861         (WebCore::TextDocumentParser::insertFakePreElement):
862         * html/parser/TextDocumentParser.h: Added.
863         (WebCore::TextDocumentParser::create):
864         * loader/TextDocument.cpp:
865         * loader/TextDocument.h:
866
867 2010-09-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
868
869         Reviewed by Andreas Kling.
870
871         Implement MediaPlayerPrivate::platformMedia() for the Qt port
872
873         https://bugs.webkit.org/show_bug.cgi?id=45264
874
875         * platform/graphics/MediaPlayer.h:
876         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
877         (WebCore::MediaPlayerPrivate::platformMedia):
878         * platform/graphics/qt/MediaPlayerPrivateQt.h:
879
880 2010-09-08  Zoltan Herczeg  <zherczeg@webkit.org>
881
882         Reviewed by Dirk Schulze.
883
884         An individual renderer should be assigned to each SVGFE*Element class
885         https://bugs.webkit.org/show_bug.cgi?id=43954
886
887         RenderSVGResourceFilterPrimitive renderer is added to
888         the project, and assigned to each object, which class is
889         derived from SVGFilterPrimitiveStandardAttributes. The patch
890         mainly contains build system changes, and it fixes one layout
891         test in svg/dynamic-updates.
892
893         * Android.mk:
894         * CMakeLists.txt:
895         * GNUmakefile.am:
896         * WebCore.gypi:
897         * WebCore.pro:
898         * WebCore.vcproj/WebCore.vcproj:
899         * WebCore.xcodeproj/project.pbxproj:
900         * rendering/RenderObject.h:
901         (WebCore::RenderObject::isSVGResourceFilterPrimitive):
902         * rendering/RenderSVGResourceFilterPrimitive.cpp: Added.
903         (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive):
904         * rendering/RenderSVGResourceFilterPrimitive.h: Added.
905         (WebCore::RenderSVGResourceFilterPrimitive::isSVGResourceFilterPrimitive):
906         * rendering/SVGRenderTreeAsText.cpp:
907         (WebCore::writeSVGContainer):
908         * svg/SVGFEDiffuseLightingElement.cpp:
909         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
910         * svg/SVGFELightElement.cpp:
911         (WebCore::SVGFELightElement::svgAttributeChanged):
912         (WebCore::SVGFELightElement::childrenChanged):
913         * svg/SVGFEOffsetElement.cpp:
914         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
915         * svg/SVGFilterElement.h:
916         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
917         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
918         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
919         (WebCore::SVGFilterPrimitiveStandardAttributes::createRenderer):
920         * svg/SVGFilterPrimitiveStandardAttributes.h:
921         (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate):
922
923 2010-09-07  Sam Weinig  <sam@webkit.org>
924
925         Reviewed by Dan Bernstein.
926
927         DatasetDOMStringMap does not have the right memory model
928         https://bugs.webkit.org/show_bug.cgi?id=45358
929
930         Test: fast/dom/dataset-gc.html
931
932         * bindings/js/JSElementCustom.cpp:
933         (WebCore::JSElement::markChildren):
934         Mark the dataset if it exists.
935
936         * dom/Element.cpp:
937         (WebCore::Element::optionalDataset):
938         * dom/Element.h:
939         Expose a way to get the dataset or null (depending on if anyone thing
940         has forced its creation yet).
941
942 2010-09-07  Jan E Hanssen  <jhanssen@sencha.com>
943
944         Reviewed by Andreas Kling.
945
946         [Qt] Add a separate Path::closeCanvasSubpath() function for canvas paths
947         https://bugs.webkit.org/show_bug.cgi?id=45331
948
949         This is needed due to an adverse effect of the fix in 44061 that causes
950         certain paths not to be closed. This is not important for canvas paths
951         but it is for SVG paths, so splitting up the code in a generic (SVG)
952         case and one specialized for canvas.
953
954         Test: svg/dom/path-totalLength.html
955
956         * html/canvas/CanvasRenderingContext2D.cpp:
957         (WebCore::CanvasRenderingContext2D::closePath):
958         * platform/graphics/Path.h:
959         (WebCore::Path::closeCanvasSubpath):
960         * platform/graphics/qt/PathQt.cpp:
961         (WebCore::Path::closeSubpath):
962         (WebCore::Path::closeCanvasSubpath):
963
964 2010-09-07  Simon Fraser  <simon.fraser@apple.com>
965
966         Reviewed by Chris Marrin.
967
968         Transform animations always run in software now
969         https://bugs.webkit.org/show_bug.cgi?id=45341
970         
971         After r66339 we always fell into software animation, because we
972         failed to detect transform or opacity properties in the keyframes,
973         so would send an empty list of values to the GraphicsLayer.
974         
975         Fixed by using CSSProperty values, rather than GraphicsLayer
976         values, when detecting the presence of properties in the keyframes.
977         
978         Test: manual-tests/transition-accelerated.html
979
980         * rendering/RenderLayerBacking.cpp:
981         (WebCore::RenderLayerBacking::startAnimation):
982
983 2010-09-07  Chris Rogers  <crogers@google.com>
984
985         Reviewed by Kenneth Russell.
986
987         audio engine: add FFTFrame files
988         https://bugs.webkit.org/show_bug.cgi?id=34827
989
990         No new tests since audio API is not yet implemented.
991
992         * platform/audio/FFTFrame.cpp: Added.
993         (WebCore::FFTFrame::doPaddedFFT):
994         (WebCore::FFTFrame::createInterpolatedFrame):
995         (WebCore::FFTFrame::interpolateFrequencyComponents):
996         (WebCore::FFTFrame::extractAverageGroupDelay):
997         (WebCore::FFTFrame::addConstantGroupDelay):
998         (WebCore::FFTFrame::print):
999         * platform/audio/FFTFrame.h: Added.
1000         (WebCore::FFTFrame::fftSize):
1001         (WebCore::FFTFrame::log2FFTSize):
1002         (WebCore::FFTFrame::dspSplitComplex):
1003         * platform/audio/mac/FFTFrameMac.cpp: Added.
1004         (WebCore::FFTFrame::FFTFrame):
1005         (WebCore::FFTFrame::~FFTFrame):
1006         (WebCore::FFTFrame::multiply):
1007         (WebCore::FFTFrame::doFFT):
1008         (WebCore::FFTFrame::doInverseFFT):
1009         (WebCore::FFTFrame::fftSetupForSize):
1010         (WebCore::FFTFrame::cleanup):
1011         (WebCore::FFTFrame::realData):
1012         (WebCore::FFTFrame::imagData):
1013
1014 2010-09-07  Brent Fulgham  <bfulgham@webkit.org>
1015
1016         Build fix, no review.
1017
1018         Provide stubs to allow WebKit.dll to build
1019         for the WinCairo port.
1020
1021         * platform/network/curl/ResourceRequest.h:
1022         (WebCore::ResourceRequest::ResourceRequest):
1023         * platform/network/curl/ResourceResponse.h:
1024         (WebCore::ResourceResponse::cfURLResponse):
1025
1026 2010-09-07  Chris Rogers  <crogers@google.com>
1027
1028         Reviewed by Kenneth Russell.
1029
1030         Add AudioArray.h
1031         https://bugs.webkit.org/show_bug.cgi?id=45204
1032
1033         No new tests since audio API is not yet implemented.
1034
1035         * platform/audio/AudioArray.h: Added.
1036         (WebCore::AudioArray::AudioArray):
1037         (WebCore::AudioArray::zero):
1038         (WebCore::AudioArray::zeroRange):
1039         (WebCore::AudioArray::copyToRange):
1040
1041 2010-09-07  Mihai Parparita  <mihaip@chromium.org>
1042
1043         Reviewed by Oliver Hunt.
1044
1045         pushState and replaceState do not clone RegExp objects correctly
1046         https://bugs.webkit.org/show_bug.cgi?id=44718
1047         
1048         Add RegExp support to the JSC implementation of SerializedScriptValue
1049         (it stores the pattern and flags read from a RegExpObject, and creates
1050         a new one on deserialization).
1051         
1052         Tests: fast/loader/stateobjects/pushstate-object-types.html 
1053
1054         * ForwardingHeaders/runtime/RegExp.h: Added.
1055         * ForwardingHeaders/runtime/RegExpObject.h: Added.
1056         * bindings/js/SerializedScriptValue.cpp:
1057         (WebCore::CloneSerializer::dumpIfTerminal):
1058         (WebCore::CloneDeserializer::readTerminal):
1059
1060 2010-09-07  James Robinson  <jamesr@chromium.org>
1061
1062         Reviewed by Kenneth Russell.
1063
1064         Fix compile errors in DrawingBuffer if USE(ACCELERATED_COMPOSITING) is not set
1065         https://bugs.webkit.org/show_bug.cgi?id=45324
1066
1067         Adds appropriate #if guards around code that has to deal directly with the compositor.
1068         DrawingBuffer can still be used without the compositor as an off-screen rendering
1069         region.
1070
1071         To test, compile without USE(ACCELERATED_COMPOSITING).
1072
1073         * platform/graphics/chromium/DrawingBufferChromium.cpp:
1074         (WebCore::DrawingBuffer::~DrawingBuffer):
1075         (WebCore::DrawingBuffer::reset):
1076         * platform/graphics/gpu/DrawingBuffer.h:
1077
1078 2010-09-03  Joseph Pecoraro  <joepeck@webkit.org>
1079
1080         Reviewed by Darin Adler.
1081
1082         Provide a way to trigger a <select multiple> onchange event on changes
1083         https://bugs.webkit.org/show_bug.cgi?id=45192
1084
1085         Test: LayoutTests/platform/mac/fast/objc/dom-html-select-activate.html
1086
1087         This provides a way for a WebKit client using the Obj-C DOM bindings to
1088         trigger the "change" on a listbox select (<select multiple> or <select>
1089         with size > 1). This is because when a select is rendered as a listbox
1090         "change" events are triggered by mouse down events.
1091
1092         This adds -[DOMHTMLSelectElement _activateItemAtIndex:allowMultipleSelection:]
1093         to allow for handling multiple selections if the select element is a
1094         multi-select.
1095
1096         * bindings/objc/DOMHTML.mm:
1097         (-[DOMHTMLSelectElement _activateItemAtIndex:allowMultipleSelection:]):
1098         * bindings/objc/DOMPrivate.h: unified the Category name. Was "FormsAutocomplete" now all are "FormAutocomplete".
1099         * dom/SelectElement.h:
1100         * html/HTMLSelectElement.cpp:
1101         (WebCore::HTMLSelectElement::setSelectedIndexByUser): listboxs need to be treated specially to fire their "change" event.
1102         * html/HTMLSelectElement.h:
1103         * wml/WMLSelectElement.cpp:
1104         (WebCore::WMLSelectElement::setSelectedIndexByUser):
1105
1106 2010-09-07  Simon Fraser  <simon.fraser@apple.com>
1107
1108         Reviewed by Darin Adler.
1109
1110         Minor WKCACFLayerRenderer cleanup
1111         https://bugs.webkit.org/show_bug.cgi?id=45201
1112
1113         Call initD3DGeometry() from createRenderer, rather than duplicating the code.
1114
1115         No behavior changes.
1116
1117         * platform/graphics/win/WKCACFLayerRenderer.cpp:
1118         (WebCore::WKCACFLayerRenderer::createRenderer):
1119
1120 2010-09-07  Vangelis Kokkevis  <vangelis@chromium.org>
1121
1122         Reviewed by Darin Fisher.
1123
1124         [chromium] Reset the owner of PlatformLayer's once the GraphicsLayer they are associated with
1125         gets destroyed.
1126         https://bugs.webkit.org/show_bug.cgi?id=45329
1127
1128         Test: Fixes UI test failures downstream for all the Media tests when run on the buildbots (machines without GPUs).
1129
1130         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1131         (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
1132
1133 2010-09-07  Anders Carlsson  <andersca@apple.com>
1134
1135         Reviewed by Darin Adler.
1136
1137         <rdar://problem/8381749> -Wcast-align warning emitted when building with clang
1138
1139         Remove the -Wcast-align-warning since it isn't really useful, and clang is more aggressive about warning than gcc.
1140
1141         * Configurations/Base.xcconfig:
1142
1143 2010-09-07  Abhishek Arya  <inferno@chromium.org>
1144
1145         Reviewed by Darin Adler.
1146
1147         Remove redundant bounds check in originalText(). Add bounds check
1148         to previousCharacter(). No need of start() > 0 check since m_start
1149         is unsigned and we already do start() null check inside function.
1150         https://bugs.webkit.org/show_bug.cgi?id=45303
1151
1152         Test: fast/text/one-letter-transform-crash.html
1153
1154         * rendering/RenderTextFragment.cpp:
1155         (WebCore::RenderTextFragment::originalText):
1156         (WebCore::RenderTextFragment::previousCharacter):
1157
1158 2010-09-07  Kenneth Russell  <kbr@google.com>
1159
1160         Reviewed by Dimitri Glazkov.
1161
1162         Regression in JPEG texture uploads on Mac OS X
1163         https://bugs.webkit.org/show_bug.cgi?id=45316
1164
1165         Fixed regression introduced in
1166         https://bugs.webkit.org/show_bug.cgi?id=44566 . Added regression
1167         test covering this case to gl-teximage.html in Khronos repository
1168         and synced test with WebKit's version.
1169
1170         * platform/graphics/cg/GraphicsContext3DCG.cpp:
1171         (WebCore::GraphicsContext3D::getImageData):
1172
1173 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
1174
1175         Add rendering/ColumnInfo.h to the sources list.
1176
1177         * GNUmakefile.am:
1178
1179 2010-09-07  David Hyatt  <hyatt@apple.com>
1180
1181         Reviewed by Beth Dakin.
1182
1183         https://bugs.webkit.org/show_bug.cgi?id=45317, encapsulate multi-column rectangle information.
1184
1185         * WebCore.xcodeproj/project.pbxproj:
1186         * rendering/ColumnInfo.h: Added.
1187         (WebCore::ColumnInfo::ColumnInfo):
1188         (WebCore::ColumnInfo::desiredColumnWidth):
1189         (WebCore::ColumnInfo::setDesiredColumnWidth):
1190         (WebCore::ColumnInfo::desiredColumnCount):
1191         (WebCore::ColumnInfo::setDesiredColumnCount):
1192         (WebCore::ColumnInfo::columnCount):
1193         (WebCore::ColumnInfo::columnRectAt):
1194         (WebCore::ColumnInfo::clearColumns):
1195         (WebCore::ColumnInfo::addColumnRect):
1196         * rendering/RenderBlock.cpp:
1197         (WebCore::RenderBlock::paintColumnRules):
1198         (WebCore::RenderBlock::paintColumnContents):
1199         (WebCore::RenderBlock::lowestPosition):
1200         (WebCore::RenderBlock::rightmostPosition):
1201         (WebCore::RenderBlock::leftmostPosition):
1202         (WebCore::RenderBlock::hitTestColumns):
1203         (WebCore::RenderBlock::setDesiredColumnCountAndWidth):
1204         (WebCore::RenderBlock::desiredColumnWidth):
1205         (WebCore::RenderBlock::desiredColumnCount):
1206         (WebCore::RenderBlock::columnInfo):
1207         (WebCore::RenderBlock::layoutColumns):
1208         (WebCore::RenderBlock::adjustPointToColumnContents):
1209         (WebCore::RenderBlock::adjustRectForColumns):
1210         (WebCore::RenderBlock::adjustForColumns):
1211         * rendering/RenderBlock.h:
1212         * rendering/RenderLayer.cpp:
1213         (WebCore::RenderLayer::paintChildLayerIntoColumns):
1214         (WebCore::RenderLayer::hitTestChildLayerColumns):
1215
1216 2010-09-07  Dan Bernstein  <mitz@apple.com>
1217
1218         Reviewed by Dave Hyatt.
1219
1220         <rdar://problem/7794761> Floats inside of multicol fail to hit test
1221         https://bugs.webkit.org/show_bug.cgi?id=44730
1222
1223         Test: fast/multicol/hit-test-float.html
1224
1225         Factored float hit-testing out of nodeAtPoint so that hitTestColumns could
1226         call it with column-adjusted coordinates.
1227
1228         * rendering/RenderBlock.cpp:
1229         (WebCore::RenderBlock::nodeAtPoint):
1230         (WebCore::RenderBlock::hitTestFloats):
1231         (WebCore::RenderBlock::hitTestColumns):
1232         * rendering/RenderBlock.h:
1233
1234 2010-09-07  François Sausset  <sausset@gmail.com>
1235
1236         Reviewed by Beth Dakin.
1237
1238         <math> element should be centered when display attribute set to block.
1239         https://bugs.webkit.org/show_bug.cgi?id=44206
1240
1241         Test: mathml/presentation/attributes.xhtml
1242
1243         * css/mathml.css:
1244         (math[display="block"]):
1245
1246 2010-09-07  Eric Carlson  <eric.carlson@apple.com>
1247
1248         Reviewed by Darin Adler.
1249
1250         Media elements should derive from ActiveDOMObjects
1251         https://bugs.webkit.org/show_bug.cgi?id=45306
1252         <rdar://problem/7929062>
1253
1254         * html/HTMLMediaElement.cpp:
1255         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize ActiveDOMObject
1256         (WebCore::HTMLMediaElement::stop): Call suspend, we want to do the same thing in both cases.
1257         (WebCore::HTMLMediaElement::suspend): Rename from documentWillBecomeInactive.
1258         (WebCore::HTMLMediaElement::resume): Rename from documentDidBecomeActive.
1259         (WebCore::HTMLMediaElement::hasPendingActivity): Return true if the event queue is not empty
1260         so the element can't be collected before they are sent.
1261         * html/HTMLMediaElement.h:
1262         (WebCore::HTMLMediaElement::canSuspend):
1263
1264 2010-09-07  Dimitri Glazkov  <dglazkov@chromium.org>
1265
1266         Unreviewed, rolling out r66886.
1267         http://trac.webkit.org/changeset/66886
1268         https://bugs.webkit.org/show_bug.cgi?id=45112
1269
1270         Made
1271
1272         * platform/chromium/GeolocationServiceChromium.cpp:
1273         * platform/chromium/GeolocationServiceChromium.h:
1274
1275 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
1276
1277         Small build fix. Remove libWebCoreJS from CLEAN_FILES, as it
1278         is no longer built.
1279
1280         * GNUmakefile.am: Remove reference to libWebCoreJS.
1281
1282 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
1283
1284         Reviewed by Xan Lopez.
1285
1286         [GTK] [REGRESSION] r66848 caused a crash in testwebview
1287         https://bugs.webkit.org/show_bug.cgi?id=45298
1288
1289         No new tests as this fixes a test failure.
1290
1291         * platform/gtk/ScrollViewGtk.cpp:
1292         (WebCore::ScrollView::setGtkAdjustments): Don't actually attach the
1293         scrollbar adjustments unless this is a main frame ScrollView. If we do
1294         Scrollbars will be cast incorrectly to MainFrameScrollbarGtk, causing
1295         a segfault.
1296
1297 2010-09-07  Kristian Monsen  <kristianm@google.com>
1298
1299         Reviewed by Steve Block.
1300
1301         Compile fix for Android.
1302         https://bugs.webkit.org/show_bug.cgi?id=45292
1303         Explicitly add needed header for 
1304         STRING_TO_V8PARAMETER_EXCEPTION_BLOCK as they do not get 
1305         included through other headers on Android.
1306
1307         No new tests, just a compile fix.
1308
1309         * bindings/scripts/CodeGeneratorV8.pm:
1310
1311 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
1312
1313         Reviewed by Xan Lopez.
1314
1315         [GTK] Fix some feature guards
1316         https://bugs.webkit.org/show_bug.cgi?id=45302
1317
1318         No new tests as this is just a build change.
1319
1320         * platform/graphics/gstreamer/DataSourceGStreamer.cpp: Guard with #if ENABLE(VIDEO)
1321         * platform/graphics/gstreamer/DataSourceGStreamer.h: Ditto.
1322         * platform/graphics/gstreamer/GOwnPtrGStreamer.cpp: Ditto.
1323         * platform/graphics/gstreamer/GOwnPtrGStreamer.h: Ditto.
1324         * platform/graphics/gstreamer/GStreamerGWorld.cpp: Ditto.
1325         * platform/graphics/gstreamer/GStreamerGWorld.h: Ditto.
1326         * platform/graphics/gstreamer/ImageGStreamer.h: Ditto.
1327         * platform/graphics/gstreamer/ImageGStreamerCG.mm: Ditto.
1328         * platform/graphics/gstreamer/ImageGStreamerCairo.cpp: Ditto.
1329         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Ditto.
1330         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Ditto.
1331         * platform/graphics/gstreamer/PlatformVideoWindow.h: Ditto.
1332         * platform/graphics/gstreamer/PlatformVideoWindowEfl.cpp: Ditto.
1333         * platform/graphics/gstreamer/PlatformVideoWindowGtk.cpp: Ditto.
1334         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp: Ditto.
1335         * platform/graphics/gstreamer/VideoSinkGStreamer.h: Ditto.
1336         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Ditto.
1337         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Ditto.
1338         * platform/gtk/GeolocationServiceGtk.cpp: Guard with ENABLE(GEOLOCATION)
1339         * platform/gtk/GeolocationServiceGtk.h: Ditto.
1340
1341 2010-09-07  Jonathan Dixon  <joth@chromium.org>
1342
1343         Reviewed by Jeremy Orlow.
1344
1345         Access to out-of-scope WebGeolocationServiceBridgeImpl
1346         https://bugs.webkit.org/show_bug.cgi?id=45112
1347
1348         Add missing virtual destructor to the abstract base class.
1349
1350         * platform/chromium/GeolocationServiceChromium.cpp:
1351         (WebCore::GeolocationServiceBridge::~GeolocationServiceBridge):
1352         * platform/chromium/GeolocationServiceChromium.h:
1353
1354 2010-09-07  Martin Robinson  <mrobinson@igalia.com>
1355
1356         Reviewed by Xan Lopez.
1357
1358         [GTK] [REGRESSION] r66848 caused a crash in testwebview
1359         https://bugs.webkit.org/show_bug.cgi?id=45298
1360
1361         No new tests as this fixes a test failure.
1362
1363         * platform/gtk/ScrollViewGtk.cpp:
1364         (WebCore::ScrollView::setGtkAdjustments): Don't actually attach the
1365         scrollbar adjustments unless this is a main frame ScrollView. If we do
1366         Scrollbars will be cast incorrectly to MainFrameScrollbarGtk, causing
1367         a segfault.
1368
1369 2010-09-07  Adam Langley  <agl@chromium.org>
1370
1371         Reviewed by Tony Chang.
1372
1373         [chromium] Fix complex text word spacing on Linux.
1374
1375         I broke complex text word spacing with r66689. I misnamed a
1376         variable in the original code |glyphIndex| when it was
1377         actually indexing code points. That meant that I compared it
1378         against the wrong limit when working around Harfbuzz issues
1379         and neatly disabled word spacing.
1380
1381         https://bugs.webkit.org/show_bug.cgi?id=45191
1382
1383         Test: fast/text/atsui-spacing-features.html
1384
1385         * platform/graphics/chromium/FontLinux.cpp:
1386         (WebCore::TextRunWalker::setGlyphXPositions):
1387
1388 2010-09-07  Satish Sampath  <satish@chromium.org>
1389
1390         Reviewed by Steve Block.
1391
1392         Fix speech button's hit test logic for RTL rendering.
1393         https://bugs.webkit.org/show_bug.cgi?id=45288
1394
1395         * rendering/RenderTextControlSingleLine.cpp:
1396         (WebCore::RenderTextControlSingleLine::forwardEvent):
1397
1398 2010-09-07  Satish Sampath  <satish@chromium.org>
1399
1400         Reviewed by Jeremy Orlow.
1401
1402         Ignore programmatic clicks on speech input button for security reasons.
1403         https://bugs.webkit.org/show_bug.cgi?id=45181
1404
1405         Test: fast/speech/speech-button-ignore-generated-events.html
1406
1407         * rendering/TextControlInnerElements.cpp:
1408         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
1409
1410 2010-09-07  Kent Hansen  <kent.hansen@nokia.com>
1411
1412         Reviewed by Andreas Kling.
1413
1414         [Qt] tst_QWebFrame::connectAndDisconnect() fails on WebKit trunk because __qt_sender__ is never set
1415         https://bugs.webkit.org/show_bug.cgi?id=44697
1416
1417         When the signal handler is a JS function, __qt_sender__ is stuffed into a temporary
1418         object that's pushed onto the function's scope before the function is invoked, and
1419         popped again afterwards.
1420
1421         We were pushing this new scope object _after_ calling JSFunction::getCallData(),
1422         and relying on JSC::call() to use the fresh scope chain from the function object.
1423         However, this is no longer the case; JSC::call() uses the scope chain passed in
1424         the CallData argument. Hence, we need to set up the scope before the function's
1425         CallData is queried.
1426
1427         * bridge/qt/qt_runtime.cpp:
1428         (JSC::Bindings::QtConnectionObject::execute):
1429
1430 2010-09-07  Kwang Yul Seo  <skyul@company100.net>
1431
1432         Reviewed by Kent Tamura.
1433
1434         Add ENABLE(INSPECTOR) guard in InspectorController::inspectorControllerForNode
1435         https://bugs.webkit.org/show_bug.cgi?id=45272
1436
1437         Build fix.
1438
1439         * inspector/InspectorController.h:
1440         (WebCore::InspectorController::inspectorControllerForNode):
1441
1442 2010-09-07  Joerg Bornemann  <joerg.bornemann@nokia.com>
1443
1444         Reviewed by Ariya Hidayat.
1445
1446         Fix QtWebKit linker error on Windows CE 6.
1447         https://bugs.webkit.org/show_bug.cgi?id=43442
1448
1449         Doesn't affect any tests.
1450
1451         * WebCore.pro:
1452
1453 2010-09-07  James Kozianski  <koz@chromium.org>
1454
1455         Reviewed by Kent Tamura.
1456
1457         Crash rendering <meter/> with percent padding
1458         https://bugs.webkit.org/show_bug.cgi?id=45081
1459
1460         Avoids a crash caused by RenderMeter checking its own dimensions to
1461         determine whether it needs layout. The crash is avoided by removing
1462         the check and always calling setNeedsLayout(true).
1463
1464         Test: fast/dom/HTMLMeterElement/meter-percent-size.html
1465
1466         * rendering/RenderIndicator.cpp:
1467         (WebCore::RenderIndicator::updateFromElement):
1468         * rendering/RenderIndicator.h:
1469
1470 2010-09-06  Adam Barth  <abarth@webkit.org>
1471
1472         Reviewed by Sam Weinig.
1473
1474         OOB read with svg polyline
1475         https://bugs.webkit.org/show_bug.cgi?id=45279
1476
1477         In principle, attributeChanged can do anything.  If we supported more
1478         DOM mutation events, it could even run JavaScript.  That means we need
1479         to be prepared for the attribute map to change when running
1480         attributeChanged.  This patch makes this loop resilient to the
1481         attribute map changing by storing the list of changed attributes on the
1482         stack.
1483
1484         Test: fast/parser/changing-attrbutes-crash.html
1485
1486         * dom/Element.cpp:
1487         (WebCore::Element::setAttributeMap):
1488
1489 2010-09-06  Oliver Hunt  <oliver@apple.com>
1490
1491         Windows build fix
1492
1493         * bindings/js/SerializedScriptValue.cpp:
1494         (WebCore::CloneSerializer::write):
1495
1496 2010-09-06  Oliver Hunt  <oliver@apple.com>
1497
1498         Windows build fix
1499
1500         * bindings/js/SerializedScriptValue.cpp:
1501         (WebCore::CloneSerializer::write):
1502
1503 2010-09-05  Oliver Hunt  <oliver@apple.com>
1504
1505         Reviewed by Sam Weinig.
1506
1507         SerializedScriptValue needs to use a flat storage mechanism
1508         https://bugs.webkit.org/show_bug.cgi?id=45244
1509
1510         Rewrite the old tree to tree serialization logic to use
1511         flat storage.  Unfortunately this basically required a
1512         complete rewrite.
1513
1514         * bindings/js/SerializedScriptValue.cpp:
1515         (WebCore::CloneBase::CloneBase):
1516         (WebCore::CloneBase::shouldTerminate):
1517         (WebCore::CloneBase::ticksUntilNextCheck):
1518         (WebCore::CloneBase::didTimeOut):
1519         (WebCore::CloneBase::throwStackOverflow):
1520         (WebCore::CloneBase::throwInterruptedException):
1521         (WebCore::CloneBase::fail):
1522         (WebCore::CloneSerializer::serialize):
1523         (WebCore::CloneSerializer::CloneSerializer):
1524         (WebCore::CloneSerializer::isArray):
1525         (WebCore::CloneSerializer::startObject):
1526         (WebCore::CloneSerializer::startArray):
1527         (WebCore::CloneSerializer::endObject):
1528         (WebCore::CloneSerializer::getSparseIndex):
1529         (WebCore::CloneSerializer::getProperty):
1530         (WebCore::CloneSerializer::dumpImmediate):
1531         (WebCore::CloneSerializer::dumpString):
1532         (WebCore::CloneSerializer::dumpIfTerminal):
1533         (WebCore::CloneSerializer::write):
1534         (WebCore::CloneSerializer::writeLittleEndian):
1535         (WebCore::CloneSerializer::writeStringIndex):
1536         (WebCore::CloneDeserializer::deserializeString):
1537         (WebCore::CloneDeserializer::deserialize):
1538         (WebCore::CloneDeserializer::CloneDeserializer):
1539         (WebCore::CloneDeserializer::throwValidationError):
1540         (WebCore::CloneDeserializer::isValid):
1541         (WebCore::CloneDeserializer::readLittleEndian):
1542         (WebCore::CloneDeserializer::read):
1543         (WebCore::CloneDeserializer::readStringIndex):
1544         (WebCore::CloneDeserializer::readString):
1545         (WebCore::CloneDeserializer::readStringData):
1546         (WebCore::CloneDeserializer::readTag):
1547         (WebCore::CloneDeserializer::putProperty):
1548         (WebCore::CloneDeserializer::readFile):
1549         (WebCore::CloneDeserializer::readTerminal):
1550         (WebCore::SerializedScriptValue::~SerializedScriptValue):
1551         (WebCore::SerializedScriptValue::SerializedScriptValue):
1552         (WebCore::SerializedScriptValue::create):
1553         (WebCore::SerializedScriptValue::toString):
1554         (WebCore::SerializedScriptValue::deserialize):
1555         (WebCore::SerializedScriptValue::nullValue):
1556         * bindings/js/SerializedScriptValue.h:
1557         * dom/MessagePortChannel.cpp:
1558         (WebCore::MessagePortChannel::EventData::EventData):
1559         * workers/WorkerMessagingProxy.cpp:
1560         (WebCore::MessageWorkerContextTask::MessageWorkerContextTask):
1561         (WebCore::MessageWorkerTask::MessageWorkerTask):
1562
1563 2010-09-06  Martin Robinson  <mrobinson@igalia.com>
1564
1565         Reviewed by Gustavo Noronha Silva.
1566
1567         [GTK] ScrollbarThemeGtk should be enabled for interior frame scrollbars
1568         https://bugs.webkit.org/show_bug.cgi?id=45046
1569
1570         Make interior frame scrollbars "fully-fake," which means they do not rely
1571         at all on GTK+ for painting or behavior, but instead are typical WebCore
1572         scrollbars drawn according to the GTK+ theme. Move ScrollbarGtk to
1573         MainFrameScrollbarGtk and remove all logic in that file dealing with interior
1574         frame scrollbars.
1575
1576         No new tests, as this is already covered by pixel tests for scrollbars,
1577         which were added in r66605.
1578
1579         * GNUmakefile.am: Update sources list.
1580         * platform/ScrollView.h: Change the adjustment members to be smart pointers.
1581         * platform/Scrollbar.cpp: Enable THUMB_POSITION_AFFECTS_BUTTONS for GTK+ as well.
1582         * platform/gtk/MainFrameScrollbarGtk.cpp: Added.
1583         (MainFrameScrollbarGtk::create): Create a MainFrameScrollbarGtk instead of ScrollbarGtk.
1584         (MainFrameScrollbarGtk::MainFrameScrollbarGtk):
1585         (MainFrameScrollbarGtk::~MainFrameScrollbarGtk):
1586         (MainFrameScrollbarGtk::attachAdjustment):
1587         (MainFrameScrollbarGtk::detachAdjustment):
1588         (MainFrameScrollbarGtk::updateThumbPosition):
1589         (MainFrameScrollbarGtk::updateThumbProportion):
1590         (MainFrameScrollbarGtk::gtkValueChanged):
1591         (MainFrameScrollbarGtk::paint):
1592         * platform/gtk/MainFrameScrollbarGtk.h: Added.
1593         * platform/gtk/ScrollViewGtk.cpp:
1594         (WebCore::ScrollView::platformInit): Remove unnecessary initialization
1595         because of smart pointer change.
1596         (WebCore::ScrollView::createScrollbar): Instead of creating ScrollbarGtk for
1597         interior frame scrollbars, create a normal WebCore scrollbar.
1598         (WebCore::ScrollView::setGtkAdjustments): Added an extra assert which ensures
1599         that this method is never called with a non-null adjustment on an interior frame
1600         scrollbar.
1601         (WebCore::ScrollView::platformAddChild): Remove logic for interior frame scrollbars.
1602         (WebCore::ScrollView::platformRemoveChild): Remove logic for interior frame scrollbars.
1603         (WebCore::ScrollView::visibleContentRect): Use a more accurate guard for detecting
1604         transitionary states when accessing parent widgets. Explcitly guard against interior
1605         frame ScrollView's trying to determine size based on parent widgets.
1606         (WebCore::ScrollView::setScrollbarModes): This method was out of sync with the one
1607         it copy-and-pasted from. Update it and change the logic to do the right thing for
1608         interior frame scrollbars.
1609         * platform/gtk/ScrollbarGtk.cpp: Removed.
1610         * platform/gtk/ScrollbarGtk.h: Removed.
1611
1612 2010-09-06  Justin Schuh  <jschuh@chromium.org>
1613
1614         Reviewed by Nikolas Zimmermann.
1615
1616         Make SVG PendingResources use RefPtr
1617         https://bugs.webkit.org/show_bug.cgi?id=43587
1618
1619         Convert SVGDocumentExtensions::m_pendingResources to use a RefPtr for 
1620         pending elements instead of a raw pointer so that pending elements can't
1621         be freed prematurely.
1622
1623         Test: svg/custom/use-invalid-pattern.svg
1624
1625         * rendering/RenderSVGResourceContainer.cpp:
1626         (WebCore::RenderSVGResourceContainer::registerResource):
1627         * svg/SVGDocumentExtensions.cpp:
1628         (WebCore::SVGDocumentExtensions::addPendingResource):
1629         (WebCore::SVGDocumentExtensions::removePendingResource):
1630         * svg/SVGDocumentExtensions.h:
1631         * svg/SVGElement.cpp:
1632         (WebCore::SVGElement::insertedIntoDocument):
1633
1634 2010-09-06  Martin Robinson  <mrobinson@igalia.com>
1635
1636         Reviewed by Gustavo Noronha Silva.
1637
1638         [GTK] ScrollbarThemeGtk should support secondary steppers
1639         https://bugs.webkit.org/show_bug.cgi?id=44791
1640
1641         Add support to ScrollbarThemeGtk for drawing alternate steppers. Adjust
1642         the algorithms for calculating forward and back button rects, if they
1643         are active in the theme. Expose this information via GtkScrollbarMetrics.
1644
1645         * platform/gtk/ScrollbarThemeGtk.cpp:
1646         (WebCore::ScrollbarThemeGtk::updateThemeProperties): Access the secondary stepper properties
1647         of GtkScrollbarMetrics when updating the style cache.
1648         (WebCore::ScrollbarThemeGtk::backButtonRect): Account for alternate steppers.
1649         (WebCore::ScrollbarThemeGtk::forwardButtonRect): Ditto.
1650         (WebCore::ScrollbarThemeGtk::trackRect): Ditto.
1651         (WebCore::ScrollbarThemeGtk::paintButton): Ditto.
1652         * platform/gtk/ScrollbarThemeGtk.h:
1653         * platform/gtk/gtk2drawing.c: Expose whether or not the style uses alternate steppers
1654         via GtkScrollbarMetrics.
1655         * platform/gtk/gtkdrawing.h: Added fields to GtkScrollbarMetrics.
1656
1657 2010-09-06  Tony Gentilcore  <tonyg@chromium.org>
1658
1659         Reviewed by Adam Barth.
1660
1661         Implement HTML5 definition of document.readyState
1662         https://bugs.webkit.org/show_bug.cgi?id=45119
1663
1664         The legacy behavior was "loading" -> "loaded" -> "complete". The new
1665         HTML5 behavior is "loading" -> "interactive" -> "complete". There is
1666         some potential for this to cause compat problems if for instance a
1667         page expects readyState to be "loaded" during the DOMContentLoaded event.
1668
1669         Test: fast/dom/Document/readystate.html
1670
1671         * dom/Document.cpp:
1672         (WebCore::Document::Document): Initial value is Complete because according to http://www.whatwg.org/specs/web-apps/current-work/#dom-document-readystate,
1673         when a Document is created the initial value is "complete" unless it has a parser associated with it, in which case it is "loading".
1674         So the ctor starts it Complete, and when the parser is created it is flipped to Loading.
1675         (WebCore::Document::readyState):
1676         (WebCore::Document::setReadyState):
1677         (WebCore::Document::implicitOpen):
1678         (WebCore::Document::finishedParsing): Ensure that XML and HTML parser have transition to Stopping state.
1679         * dom/Document.h:
1680         * dom/DocumentParser.cpp:
1681         (WebCore::DocumentParser::prepareToStopParsing): Previously this was being called when parsing had stopped.
1682         It is better to ensure it is only called while parsing.
1683         * dom/XMLDocumentParser.cpp:
1684         (WebCore::XMLDocumentParser::end): Transition to stopping before calling document finishedParsiong().
1685         * html/parser/HTMLDocumentParser.cpp:
1686         (WebCore::HTMLDocumentParser::prepareToStopParsing): Set state to interactive before running deferred scripts.
1687         This method is also called when parsing fragments, so we need to ensure it isn't done in that case.
1688         (WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd): Added. Break out this part s that notifyFinished doesn't go through
1689         the additional steps of pumping tokenizer, setting the state, etc.
1690         (WebCore::HTMLDocumentParser::notifyFinished): Now that prepareToStopParsing is split up, we must protect. It also makes sense to add a couple of ASSERTs.
1691         * loader/FrameLoader.cpp:
1692         (WebCore::FrameLoader::stopLoading): It looks like an aborted load should never transition to "complete" according the HTML5. I've left the legacy behavior for now though.
1693         (WebCore::FrameLoader::checkCompleted): The FrameLoader now sets the state on the Document instead of the Document polling the FrameLoader.
1694
1695 2010-09-06  Anton Muhin  <antonm@chromium.org>
1696
1697         Reviewed by Adam Barth.
1698
1699         [v8] Inline hot methods for V8 to WebCore and back conversions
1700         https://bugs.webkit.org/show_bug.cgi?id=45270
1701
1702         Inline fast paths of hot functions performing conversions from V8 wrappers
1703         to WebCore native objects and back.
1704         That slightly increases the size of binary (within 0.1% for both Ubuntu
1705         and Windows, but those builds are slightly different from official ones),
1706         but gives performance boost (3--5% on Windows, up to 8% on Ubuntu).
1707
1708         * bindings/scripts/CodeGeneratorV8.pm:
1709         * bindings/v8/V8DOMWindowShell.cpp:
1710         (WebCore::V8DOMWindowShell::initContextIfNeeded):
1711         * bindings/v8/V8DOMWindowShell.h:
1712         * bindings/v8/V8DOMWrapper.cpp:
1713         (WebCore::V8DOMWrapper::getWrapperSlow):
1714         * bindings/v8/V8DOMWrapper.h:
1715         (WebCore::V8DOMWrapper::getWrapper):
1716         * bindings/v8/custom/V8NodeCustom.cpp:
1717         (WebCore::toV8Slow):
1718
1719 2010-09-06  Shane Stephens  <shanestephens@google.com>
1720
1721         Reviewed by Dimitri Glazkov.
1722
1723         [Crash] <animateMotion> element directly inside <symbol> element causes crash when referenced by <use>
1724         https://bugs.webkit.org/show_bug.cgi?id=44750
1725
1726         Fixes crash by checking for null transforms and skipping update step
1727         when appropriate.
1728
1729         Test: svg/dom/symbol-embeddedAnimation.svg
1730
1731         * svg/SVGAnimateMotionElement.cpp:
1732         (WebCore::SVGAnimateMotionElement::applyResultsToTarget):
1733
1734 2010-09-06  Xan Lopez  <xlopez@igalia.com>
1735
1736         Rubber-stamped by Tor Arne Vestbø.
1737
1738         WebCore already generates a focus-{out,in} events on its setFocus
1739         method, there's no need to duplicate it here. Previously this was
1740         needed because we were not catching all possible names of focus
1741         events in PluginView::handleEvent and were missing the ones
1742         WebCore does, but this has been fixed in r66827.
1743
1744         * plugins/qt/PluginViewQt.cpp:
1745         (WebCore::PluginView::setFocus):
1746
1747 2010-09-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1748
1749         Unreviewed, rolling out r66823.
1750         http://trac.webkit.org/changeset/66823
1751         https://bugs.webkit.org/show_bug.cgi?id=45266
1752
1753         Windows build fails with unknown reason (Requested by zherczeg
1754         on #webkit).
1755
1756         * Android.mk:
1757         * CMakeLists.txt:
1758         * GNUmakefile.am:
1759         * WebCore.gypi:
1760         * WebCore.pro:
1761         * WebCore.vcproj/WebCore.vcproj:
1762         * WebCore.xcodeproj/project.pbxproj:
1763         * rendering/RenderObject.h:
1764         * rendering/RenderSVGResourceFilterPrimitive.cpp: Removed.
1765         * rendering/RenderSVGResourceFilterPrimitive.h: Removed.
1766         * rendering/SVGRenderTreeAsText.cpp:
1767         (WebCore::writeSVGContainer):
1768         * svg/SVGFEDiffuseLightingElement.cpp:
1769         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
1770         * svg/SVGFELightElement.cpp:
1771         (WebCore::SVGFELightElement::svgAttributeChanged):
1772         (WebCore::SVGFELightElement::childrenChanged):
1773         * svg/SVGFEOffsetElement.cpp:
1774         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
1775         * svg/SVGFilterElement.h:
1776         (WebCore::SVGFilterElement::invalidateFilter):
1777         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1778         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
1779         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
1780         * svg/SVGFilterPrimitiveStandardAttributes.h:
1781         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
1782
1783 2010-09-06  Xan Lopez  <xlopez@igalia.com>
1784
1785         Reviewed by Martin Robinson.
1786
1787         [GTK] Provide Keyboard Events to Windowless plugins
1788         https://bugs.webkit.org/show_bug.cgi?id=44613
1789
1790         Fix keyboard event delivery for windowless plugins.
1791
1792         Based on a patch by Bharathwaaj.
1793
1794         * plugins/PluginView.cpp:
1795         (WebCore::PluginView::handleEvent): also take into account
1796         focused{in,out} events
1797         * plugins/gtk/PluginViewGtk.cpp:
1798         (WebCore::PluginView::handleKeyboardEvent): we want the keyval
1799         here, not the hardware keycode
1800         (WebCore::PluginView::handleMouseEvent): focus the pluginview on mouse events
1801
1802 2010-09-06  Ilya Tikhonovsky  <loislo@chromium.org>
1803
1804         Reviewed by Yury Semikhatsky.
1805
1806         WebInspector: it'd be nice to be able to pass undefined argument as a callback to InspectorBackend functions.
1807
1808         There are some places where callback is passing via some wrapper. In that case sendMessageToBackend
1809         will be called with additional argument for callback but with undefined value.
1810
1811         https://bugs.webkit.org/show_bug.cgi?id=45265
1812
1813         * inspector/CodeGeneratorInspector.pm:
1814
1815 2010-09-06  Zoltan Herczeg  <zherczeg@webkit.org>
1816
1817         Reviewed by Dirk Schulze.
1818
1819         An individual renderer should be assigned to each SVGFE*Element class
1820         https://bugs.webkit.org/show_bug.cgi?id=43954
1821
1822         RenderSVGResourceFilterPrimitive renderer is added to
1823         the project, and assigned to each object, which class is
1824         derived from SVGFilterPrimitiveStandardAttributes. The patch
1825         mainly contains build system changes, and it fixes one layout
1826         test in svg/dynamic-updates.
1827
1828         * Android.mk:
1829         * CMakeLists.txt:
1830         * GNUmakefile.am:
1831         * WebCore.gypi:
1832         * WebCore.pro:
1833         * WebCore.vcproj/WebCore.vcproj:
1834         * WebCore.xcodeproj/project.pbxproj:
1835         * rendering/RenderObject.h:
1836         (WebCore::RenderObject::isSVGResourceFilterPrimitive):
1837         * rendering/RenderSVGResourceFilterPrimitive.cpp: Added.
1838         (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive):
1839         * rendering/RenderSVGResourceFilterPrimitive.h: Added.
1840         (WebCore::RenderSVGResourceFilterPrimitive::isSVGResourceFilterPrimitive):
1841         * rendering/SVGRenderTreeAsText.cpp:
1842         (WebCore::writeSVGContainer):
1843         * svg/SVGFEDiffuseLightingElement.cpp:
1844         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
1845         * svg/SVGFELightElement.cpp:
1846         (WebCore::SVGFELightElement::svgAttributeChanged):
1847         (WebCore::SVGFELightElement::childrenChanged):
1848         * svg/SVGFEOffsetElement.cpp:
1849         (WebCore::SVGFEOffsetElement::svgAttributeChanged):
1850         * svg/SVGFilterElement.h:
1851         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1852         (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged):
1853         (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):
1854         (WebCore::SVGFilterPrimitiveStandardAttributes::createRenderer):
1855         * svg/SVGFilterPrimitiveStandardAttributes.h:
1856         (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate):
1857
1858 2010-09-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1859
1860         Reviewed by Dirk Schulze.
1861
1862         [WML] Use RenderImageResource in WMLImageElement.cpp
1863         https://bugs.webkit.org/show_bug.cgi?id=44952
1864
1865         The hasImage() and setCachedImage() were moved to RenderImageResource class. 
1866         So, WML also should use the functions from RenderImageResource.
1867
1868         * wml/WMLImageElement.cpp:
1869         (WebCore::WMLImageElement::attach):
1870
1871 2010-08-26  Jeremy Orlow  <jorlow@chromium.org>
1872
1873         Reviewed by Steve Block.
1874
1875         Add index insertion support to IndexedDB.
1876         https://bugs.webkit.org/show_bug.cgi?id=44695
1877
1878         Whenever you insert an item into an ObjectStore, it should use all
1879         indexes' key paths to insert corresponding entries into each index.
1880         Also data should be deleted out of the index when it goes away.
1881
1882         Not much testing yet since there's no way to directly observe indexes.
1883         More will be in next patch.
1884
1885         * storage/IDBDatabaseBackendImpl.cpp:
1886         (WebCore::IDBDatabaseBackendImpl::removeObjectStore):
1887         * storage/IDBFactoryBackendImpl.cpp:
1888         (WebCore::createTables):
1889         * storage/IDBIndex.idl:
1890         * storage/IDBIndexBackendImpl.cpp:
1891         (WebCore::whereClause):
1892         (WebCore::bindWhereClause):
1893         (WebCore::IDBIndexBackendImpl::addingKeyAllowed):
1894         * storage/IDBIndexBackendImpl.h:
1895         (WebCore::IDBIndexBackendImpl::id):
1896         * storage/IDBKey.cpp:
1897         (WebCore::IDBKey::whereSyntax):
1898         (WebCore::IDBKey::bind):
1899         (WebCore::IDBKey::bindWithNulls):
1900         * storage/IDBKey.h:
1901         * storage/IDBObjectStore.idl:
1902         * storage/IDBObjectStoreBackendImpl.cpp:
1903         (WebCore::whereClause):
1904         (WebCore::bindWhereClause):
1905         (WebCore::IDBObjectStoreBackendImpl::get):
1906         (WebCore::fetchKeyFromKeyPath):
1907         (WebCore::putObjectStoreData):
1908         (WebCore::putIndexData):
1909         (WebCore::IDBObjectStoreBackendImpl::put):
1910         (WebCore::IDBObjectStoreBackendImpl::remove):
1911         (WebCore::IDBObjectStoreBackendImpl::createIndex):
1912         (WebCore::doDelete):
1913         (WebCore::IDBObjectStoreBackendImpl::removeIndex):
1914         (WebCore::IDBObjectStoreBackendImpl::openCursor):
1915         * storage/IDBObjectStoreBackendImpl.h:
1916
1917 2010-09-06  Anton Muhin  <antonm@chromium.org>
1918
1919         Reviewed by Adam Barth.
1920
1921         [v8] bypass caches when query memory usage from post GC and in crash handler.
1922         https://bugs.webkit.org/show_bug.cgi?id=45036
1923
1924         Add Chromium-specific API to query actual memory usage which bypasses any caches.
1925
1926         * platform/chromium/ChromiumBridge.h:
1927
1928 2010-09-06  Adam Barth  <abarth@webkit.org>
1929
1930         Reviewed by Darin Adler.
1931
1932         Rename SecurityOrigin::canLoad to canDisplay
1933         https://bugs.webkit.org/show_bug.cgi?id=45214
1934
1935         canLoad is a pretty opaque name.  This function is really about whether
1936         you can display the contents of the URL in an iframe, an image, or a
1937         plugin.
1938
1939         * WebCore.exp.in:
1940         * html/HTMLMediaElement.cpp:
1941         (WebCore::HTMLMediaElement::isSafeToLoadURL):
1942         * loader/Cache.cpp:
1943         (WebCore::Cache::requestResource):
1944         * loader/FrameLoader.cpp:
1945         (WebCore::FrameLoader::loadFrameRequest):
1946         * loader/PingLoader.cpp:
1947         (WebCore::PingLoader::loadImage):
1948         * loader/SubframeLoader.cpp:
1949         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
1950         (WebCore::SubframeLoader::createJavaAppletWidget):
1951         (WebCore::SubframeLoader::loadSubframe):
1952         (WebCore::SubframeLoader::loadPlugin):
1953         * loader/SubresourceLoader.cpp:
1954         (WebCore::SubresourceLoader::create):
1955         * page/SecurityOrigin.cpp:
1956         (WebCore::SecurityOrigin::canDisplay):
1957         * page/SecurityOrigin.h:
1958         * plugins/PluginView.cpp:
1959         (WebCore::PluginView::load):
1960
1961 2010-08-31  Yury Semikhatsky  <yurys@chromium.org>
1962
1963         Reviewed by Joseph Pecoraro.
1964
1965         Web Inspector: browser crashes on attempt to evaluate "alert(1)" while staying on a breakpoint
1966         https://bugs.webkit.org/show_bug.cgi?id=44943
1967
1968         Test: inspector/debugger-suspend-active-dom-objects.html
1969
1970         * page/PageGroupLoadDeferrer.cpp:
1971         (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
1972
1973 2010-09-05  Kenneth Russell  <kbr@google.com>
1974
1975         Reviewed by Darin Fisher.
1976
1977         Add unit tests for red-black tree and (POD) arena
1978         https://bugs.webkit.org/show_bug.cgi?id=45060
1979
1980         * platform/graphics/gpu/PODArena.h: Made DefaultChunkSize public so unit tests can access it. Fixed copyright header.
1981         * platform/graphics/gpu/PODInterval.h: Fixed copyright header.
1982         * platform/graphics/gpu/PODIntervalTree.h: Fixed copyright header.
1983         * platform/graphics/gpu/PODRedBlackTree.h: Fixed copyright header.
1984
1985 2010-09-05  Jeremy Orlow  <jorlow@chromium.org>
1986
1987         Reviewed by Nate Chapin.
1988
1989         Add the concept of class methods to bindings (for IndexedDB's IDBKeyRange).
1990         https://bugs.webkit.org/show_bug.cgi?id=45044
1991
1992         IndexedDB's IDBKeyRange has what, in other languages, are called class
1993         methods. In javaScript terms, these are methods only accessible from their
1994         constructor and not instances. This change adds such support to V8. There
1995         are already other features required for IndexedDB that JSC doesn't yet
1996         support, so I'll add this to the list of todo items in the master bug
1997         for that.
1998
1999         The bindings tests cover this. My next patch will change WebCore to use
2000         this and it'll have associated layout tests.
2001
2002         * bindings/scripts/CodeGeneratorV8.pm:
2003         * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
2004         (WebDOMTestObj::classMethod):
2005         (WebDOMTestObj::classMethodWithOptional):
2006         * bindings/scripts/test/CPP/WebDOMTestObj.h:
2007         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2008         (webkit_dom_test_obj_class_method):
2009         (webkit_dom_test_obj_class_method_with_optional):
2010         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2011         * bindings/scripts/test/JS/JSTestObj.cpp:
2012         (WebCore::jsTestObjPrototypeFunctionStaticMethod):
2013         (WebCore::jsTestObjPrototypeFunctionStaticMethodWithOptional):
2014         * bindings/scripts/test/JS/JSTestObj.h:
2015         * bindings/scripts/test/ObjC/DOMTestObj.h:
2016         * bindings/scripts/test/ObjC/DOMTestObj.mm:
2017         (-[DOMTestObj classMethod]):
2018         (-[DOMTestObj classMethodWithOptional:]):
2019         * bindings/scripts/test/TestObj.idl:
2020         * bindings/scripts/test/V8/V8TestObj.cpp:
2021         (WebCore::TestObjInternal::classMethodCallback):
2022         (WebCore::TestObjInternal::classMethodWithOptionalCallback):
2023         (WebCore::ConfigureV8TestObjTemplate):
2024         * storage/IDBKeyRange.idl:
2025
2026 2010-09-05  Jeremy Orlow  <jorlow@chromium.org>
2027
2028         Reviewed by Steve Block.
2029
2030         Add IndexedDB objects' constructors to window
2031         https://bugs.webkit.org/show_bug.cgi?id=44599
2032
2033         Also add a forgotten constant to IDBTransaction, and
2034         change IDBKeyRange over to using the V8Static attribute
2035         so it actually behaves as it's supposed to.
2036
2037         * bindings/generic/RuntimeEnabledFeatures.h:
2038         (WebCore::RuntimeEnabledFeatures::iDBCursorEnabled):
2039         (WebCore::RuntimeEnabledFeatures::iDBDatabaseEnabled):
2040         (WebCore::RuntimeEnabledFeatures::iDBDatabaseErrorEnabled):
2041         (WebCore::RuntimeEnabledFeatures::iDBDatabaseExceptionEnabled):
2042         (WebCore::RuntimeEnabledFeatures::iDBErrorEventEnabled):
2043         (WebCore::RuntimeEnabledFeatures::iDBEventEnabled):
2044         (WebCore::RuntimeEnabledFeatures::iDBFactoryEnabled):
2045         (WebCore::RuntimeEnabledFeatures::iDBIndexEnabled):
2046         (WebCore::RuntimeEnabledFeatures::iDBKeyRangeEnabled):
2047         (WebCore::RuntimeEnabledFeatures::iDBObjectStoreEnabled):
2048         (WebCore::RuntimeEnabledFeatures::iDBRequestEnabled):
2049         (WebCore::RuntimeEnabledFeatures::iDBSuccessEventEnabled):
2050         (WebCore::RuntimeEnabledFeatures::iDBTransactionEnabled):
2051         * page/DOMWindow.cpp:
2052         (WebCore::DOMWindow::clear):
2053         (WebCore::DOMWindow::indexedDB):
2054         * page/DOMWindow.h:
2055         * page/DOMWindow.idl:
2056         * storage/IDBKeyRange.idl:
2057         * storage/IDBTransaction.h:
2058         * storage/IDBTransaction.idl:
2059
2060 2010-09-04  Justin Schuh  <jschuh@chromium.org>
2061
2062         Reviewed by Nikolas Zimmermann.
2063
2064         Prevent premature deletion of svg use shadow tree
2065         https://bugs.webkit.org/show_bug.cgi?id=43260
2066
2067         Test: svg/custom/use-invalid-style.svg
2068
2069         * svg/SVGUseElement.cpp:
2070         (WebCore::SVGUseElement::insertedIntoDocument):
2071         (WebCore::SVGUseElement::removedFromDocument):
2072         (WebCore::SVGUseElement::detach):
2073
2074 2010-09-03  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
2075
2076         Reviewed by Darin Adler.
2077
2078         Add NetworkingContext to avoid layer violations
2079         https://bugs.webkit.org/show_bug.cgi?id=42292
2080
2081         Create and provide access to NetworkingContext in FrameLoader.
2082
2083         In the WebKit layer we added specific implementations of FrameNetworkingContext
2084         so each port's FrameLoaderClient can add any port specific information to NetworkingContext
2085         The NetworkingContext is, therefore, created by a FrameLoaderClient and stored
2086         in the FrameLoader for each frame created. People must always use it
2087         by calling FrameLoader::networkingContext() and never through their FrameLoaderClient.
2088         The lifetime cycle of NetworkingContext is kept by a RefPtr, so the object is RefCounted.
2089
2090         It is still a preparation to NetworkingContext to be activated and
2091         work for all ports.
2092
2093         * WebCore.exp.in:
2094         * loader/EmptyClients.h:
2095         (WebCore::EmptyFrameLoaderClient::createNetworkingContext):
2096         * loader/FrameLoader.cpp:
2097         (WebCore::FrameLoader::~FrameLoader):
2098         (WebCore::FrameLoader::init):
2099         (WebCore::FrameLoader::networkingContext):
2100         * loader/FrameLoader.h:
2101         * loader/FrameLoaderClient.h:
2102
2103 2010-09-03  Kinuko Yasuda  <kinuko@chromium.org>
2104
2105         Reviewed by Darin Adler.
2106
2107         V8/JS bindings should not perform type checks if the parameter has Callback attribute
2108         https://bugs.webkit.org/show_bug.cgi?id=45143
2109
2110         No new tests, should not affect existing idls.
2111
2112         * bindings/scripts/CodeGeneratorJS.pm:
2113         * bindings/scripts/CodeGeneratorV8.pm:
2114         * bindings/scripts/test/JS/JSTestObj.cpp:
2115         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
2116         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
2117         * bindings/scripts/test/TestObj.idl:
2118         * bindings/scripts/test/V8/V8TestObj.cpp:
2119         (WebCore::TestObjInternal::overloadedMethod5Callback):
2120         (WebCore::TestObjInternal::overloadedMethodCallback):
2121
2122 2010-09-03  Kenneth Russell  <kbr@google.com>
2123
2124         Unreviewed, Chromium build fix. Fix breakage on Windows after
2125         r66787 / https://bugs.webkit.org/show_bug.cgi?id=45223 .
2126
2127         * platform/graphics/chromium/FontChromiumWin.cpp:
2128         (WebCore::Font::drawGlyphs):
2129
2130 2010-09-03  James Robinson  <jamesr@chromium.org>
2131
2132         Reviewed by Kenneth Russell.
2133
2134         [chromium] Text sometimes fails to display in accelerated 2d canvases
2135         https://bugs.webkit.org/show_bug.cgi?id=45223
2136
2137         Calls PlatformContextSkia::prepareForSoftwareDraw() before drawing glyphs
2138         using skia to ensure that the backing store state is consistent.
2139
2140         * platform/graphics/chromium/FontChromiumWin.cpp:
2141         (WebCore::Font::drawGlyphs):
2142         * platform/graphics/chromium/FontLinux.cpp:
2143         (WebCore::Font::drawGlyphs):
2144
2145 2010-09-03  Kenneth Russell  <kbr@google.com>
2146
2147         Reviewed by Darin Fisher.
2148
2149         Add thirdparty directory and incorporate GLU tessellator
2150         https://bugs.webkit.org/show_bug.cgi?id=44707
2151
2152         This directory is intended to contain copies of third-party libraries used
2153         by WebCore, in particular those which may require some modification in
2154         order to incorporate.
2155
2156         No tests at this time; these sources are being added in preparation for
2157         incorporating other code which uses them, at which point the code will be
2158         exercised and testable.
2159
2160         * thirdparty: Added.
2161         * thirdparty/README.txt: Added.
2162         * thirdparty/glu: Added.
2163         * thirdparty/glu/LICENSE.txt: Added.
2164         * thirdparty/glu/README.webkit: Added.
2165         * thirdparty/glu/gluos.h: Added.
2166         * thirdparty/glu/internal_glu.h: Added.
2167         * thirdparty/glu/libtess: Added.
2168         * thirdparty/glu/libtess/GNUmakefile: Added.
2169         * thirdparty/glu/libtess/Imakefile: Added.
2170         * thirdparty/glu/libtess/README: Added.
2171         * thirdparty/glu/libtess/alg-outline: Added.
2172         * thirdparty/glu/libtess/dict-list.h: Added.
2173         * thirdparty/glu/libtess/dict.c: Added.
2174         * thirdparty/glu/libtess/dict.h: Added.
2175         * thirdparty/glu/libtess/geom.c: Added.
2176         * thirdparty/glu/libtess/geom.h: Added.
2177         * thirdparty/glu/libtess/memalloc.c: Added.
2178         * thirdparty/glu/libtess/memalloc.h: Added.
2179         * thirdparty/glu/libtess/mesh.c: Added.
2180         * thirdparty/glu/libtess/mesh.h: Added.
2181         * thirdparty/glu/libtess/normal.c: Added.
2182         * thirdparty/glu/libtess/normal.h: Added.
2183         * thirdparty/glu/libtess/priorityq-heap.c: Added.
2184         * thirdparty/glu/libtess/priorityq-heap.h: Added.
2185         * thirdparty/glu/libtess/priorityq-sort.h: Added.
2186         * thirdparty/glu/libtess/priorityq.c: Added.
2187         * thirdparty/glu/libtess/priorityq.h: Added.
2188         * thirdparty/glu/libtess/render.c: Added.
2189         * thirdparty/glu/libtess/render.h: Added.
2190         * thirdparty/glu/libtess/sweep.c: Added.
2191         * thirdparty/glu/libtess/sweep.h: Added.
2192         * thirdparty/glu/libtess/tess.c: Added.
2193         * thirdparty/glu/libtess/tess.h: Added.
2194         * thirdparty/glu/libtess/tessmono.c: Added.
2195         * thirdparty/glu/libtess/tessmono.h: Added.
2196
2197 2010-09-03  Sheriff Bot  <webkit.review.bot@gmail.com>
2198
2199         Unreviewed, rolling out r66781.
2200         http://trac.webkit.org/changeset/66781
2201         https://bugs.webkit.org/show_bug.cgi?id=45220
2202
2203         Breaks the build. Adds a mac-specific file to
2204         platform/graphics without #if PLATFORM() guards and changes
2205         the GraphicsContext3D interface without updating all
2206         implementations (Requested by jamesr on #webkit).
2207
2208         * WebCore.gypi:
2209         * WebCore.xcodeproj/project.pbxproj:
2210         * html/canvas/WebGLObject.cpp:
2211         (WebCore::WebGLObject::deleteObject):
2212         * platform/graphics/ANGLEWebKitBridge.h:
2213         * platform/graphics/GraphicsContext3D.h:
2214         * platform/graphics/GraphicsContext3DOpenGL.cpp: Removed.
2215         * platform/graphics/mac/GraphicsContext3DMac.mm:
2216         (WebCore::GraphicsContext3D::validateAttributes):
2217         (WebCore::GraphicsContext3D::makeContextCurrent):
2218         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
2219         (WebCore::GraphicsContext3D::reshape):
2220         (WebCore::ensureContext):
2221         (WebCore::GraphicsContext3D::prepareTexture):
2222         (WebCore::GraphicsContext3D::activeTexture):
2223         (WebCore::GraphicsContext3D::attachShader):
2224         (WebCore::GraphicsContext3D::bindAttribLocation):
2225         (WebCore::GraphicsContext3D::bindBuffer):
2226         (WebCore::GraphicsContext3D::bindFramebuffer):
2227         (WebCore::GraphicsContext3D::bindRenderbuffer):
2228         (WebCore::GraphicsContext3D::bindTexture):
2229         (WebCore::GraphicsContext3D::blendColor):
2230         (WebCore::GraphicsContext3D::blendEquation):
2231         (WebCore::GraphicsContext3D::blendEquationSeparate):
2232         (WebCore::GraphicsContext3D::blendFunc):
2233         (WebCore::GraphicsContext3D::blendFuncSeparate):
2234         (WebCore::GraphicsContext3D::bufferData):
2235         (WebCore::GraphicsContext3D::bufferSubData):
2236         (WebCore::GraphicsContext3D::checkFramebufferStatus):
2237         (WebCore::GraphicsContext3D::clearColor):
2238         (WebCore::GraphicsContext3D::clear):
2239         (WebCore::GraphicsContext3D::clearDepth):
2240         (WebCore::GraphicsContext3D::clearStencil):
2241         (WebCore::GraphicsContext3D::colorMask):
2242         (WebCore::GraphicsContext3D::compileShader):
2243         (WebCore::GraphicsContext3D::copyTexImage2D):
2244         (WebCore::GraphicsContext3D::copyTexSubImage2D):
2245         (WebCore::GraphicsContext3D::cullFace):
2246         (WebCore::GraphicsContext3D::depthFunc):
2247         (WebCore::GraphicsContext3D::depthMask):
2248         (WebCore::GraphicsContext3D::depthRange):
2249         (WebCore::GraphicsContext3D::detachShader):
2250         (WebCore::GraphicsContext3D::disable):
2251         (WebCore::GraphicsContext3D::disableVertexAttribArray):
2252         (WebCore::GraphicsContext3D::drawArrays):
2253         (WebCore::GraphicsContext3D::drawElements):
2254         (WebCore::GraphicsContext3D::enable):
2255         (WebCore::GraphicsContext3D::enableVertexAttribArray):
2256         (WebCore::GraphicsContext3D::finish):
2257         (WebCore::GraphicsContext3D::flush):
2258         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
2259         (WebCore::GraphicsContext3D::framebufferTexture2D):
2260         (WebCore::GraphicsContext3D::frontFace):
2261         (WebCore::GraphicsContext3D::generateMipmap):
2262         (WebCore::GraphicsContext3D::getActiveAttrib):
2263         (WebCore::GraphicsContext3D::getActiveUniform):
2264         (WebCore::GraphicsContext3D::getAttachedShaders):
2265         (WebCore::GraphicsContext3D::getAttribLocation):
2266         (WebCore::GraphicsContext3D::getContextAttributes):
2267         (WebCore::GraphicsContext3D::getError):
2268         (WebCore::GraphicsContext3D::getString):
2269         (WebCore::GraphicsContext3D::hint):
2270         (WebCore::GraphicsContext3D::isBuffer):
2271         (WebCore::GraphicsContext3D::isEnabled):
2272         (WebCore::GraphicsContext3D::isFramebuffer):
2273         (WebCore::GraphicsContext3D::isProgram):
2274         (WebCore::GraphicsContext3D::isRenderbuffer):
2275         (WebCore::GraphicsContext3D::isShader):
2276         (WebCore::GraphicsContext3D::isTexture):
2277         (WebCore::GraphicsContext3D::lineWidth):
2278         (WebCore::GraphicsContext3D::linkProgram):
2279         (WebCore::GraphicsContext3D::pixelStorei):
2280         (WebCore::GraphicsContext3D::polygonOffset):
2281         (WebCore::GraphicsContext3D::readPixels):
2282         (WebCore::GraphicsContext3D::releaseShaderCompiler):
2283         (WebCore::GraphicsContext3D::renderbufferStorage):
2284         (WebCore::GraphicsContext3D::sampleCoverage):
2285         (WebCore::GraphicsContext3D::scissor):
2286         (WebCore::GraphicsContext3D::shaderSource):
2287         (WebCore::GraphicsContext3D::stencilFunc):
2288         (WebCore::GraphicsContext3D::stencilFuncSeparate):
2289         (WebCore::GraphicsContext3D::stencilMask):
2290         (WebCore::GraphicsContext3D::stencilMaskSeparate):
2291         (WebCore::GraphicsContext3D::stencilOp):
2292         (WebCore::GraphicsContext3D::stencilOpSeparate):
2293         (WebCore::GraphicsContext3D::texParameterf):
2294         (WebCore::GraphicsContext3D::texParameteri):
2295         (WebCore::GraphicsContext3D::uniform1f):
2296         (WebCore::GraphicsContext3D::uniform1fv):
2297         (WebCore::GraphicsContext3D::uniform2f):
2298         (WebCore::GraphicsContext3D::uniform2fv):
2299         (WebCore::GraphicsContext3D::uniform3f):
2300         (WebCore::GraphicsContext3D::uniform3fv):
2301         (WebCore::GraphicsContext3D::uniform4f):
2302         (WebCore::GraphicsContext3D::uniform4fv):
2303         (WebCore::GraphicsContext3D::uniform1i):
2304         (WebCore::GraphicsContext3D::uniform1iv):
2305         (WebCore::GraphicsContext3D::uniform2i):
2306         (WebCore::GraphicsContext3D::uniform2iv):
2307         (WebCore::GraphicsContext3D::uniform3i):
2308         (WebCore::GraphicsContext3D::uniform3iv):
2309         (WebCore::GraphicsContext3D::uniform4i):
2310         (WebCore::GraphicsContext3D::uniform4iv):
2311         (WebCore::GraphicsContext3D::uniformMatrix2fv):
2312         (WebCore::GraphicsContext3D::uniformMatrix3fv):
2313         (WebCore::GraphicsContext3D::uniformMatrix4fv):
2314         (WebCore::GraphicsContext3D::useProgram):
2315         (WebCore::GraphicsContext3D::validateProgram):
2316         (WebCore::GraphicsContext3D::vertexAttrib1f):
2317         (WebCore::GraphicsContext3D::vertexAttrib1fv):
2318         (WebCore::GraphicsContext3D::vertexAttrib2f):
2319         (WebCore::GraphicsContext3D::vertexAttrib2fv):
2320         (WebCore::GraphicsContext3D::vertexAttrib3f):
2321         (WebCore::GraphicsContext3D::vertexAttrib3fv):
2322         (WebCore::GraphicsContext3D::vertexAttrib4f):
2323         (WebCore::GraphicsContext3D::vertexAttrib4fv):
2324         (WebCore::GraphicsContext3D::vertexAttribPointer):
2325         (WebCore::GraphicsContext3D::viewport):
2326         (WebCore::GraphicsContext3D::getBooleanv):
2327         (WebCore::GraphicsContext3D::getBufferParameteriv):
2328         (WebCore::GraphicsContext3D::getFloatv):
2329         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
2330         (WebCore::GraphicsContext3D::getIntegerv):
2331         (WebCore::GraphicsContext3D::getProgramiv):
2332         (WebCore::GraphicsContext3D::getProgramInfoLog):
2333         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
2334         (WebCore::GraphicsContext3D::getShaderiv):
2335         (WebCore::GraphicsContext3D::getShaderInfoLog):
2336         (WebCore::GraphicsContext3D::getShaderSource):
2337         (WebCore::GraphicsContext3D::getTexParameterfv):
2338         (WebCore::GraphicsContext3D::getTexParameteriv):
2339         (WebCore::GraphicsContext3D::getUniformfv):
2340         (WebCore::GraphicsContext3D::getUniformiv):
2341         (WebCore::GraphicsContext3D::getUniformLocation):
2342         (WebCore::GraphicsContext3D::getVertexAttribfv):
2343         (WebCore::GraphicsContext3D::getVertexAttribiv):
2344         (WebCore::GraphicsContext3D::getVertexAttribOffset):
2345         (WebCore::GraphicsContext3D::texImage2D):
2346         (WebCore::GraphicsContext3D::texSubImage2D):
2347         (WebCore::GraphicsContext3D::createBuffer):
2348         (WebCore::GraphicsContext3D::createFramebuffer):
2349         (WebCore::GraphicsContext3D::createProgram):
2350         (WebCore::GraphicsContext3D::createRenderbuffer):
2351         (WebCore::GraphicsContext3D::createShader):
2352         (WebCore::GraphicsContext3D::createTexture):
2353         (WebCore::GraphicsContext3D::deleteBuffer):
2354         (WebCore::GraphicsContext3D::deleteFramebuffer):
2355         (WebCore::GraphicsContext3D::deleteProgram):
2356         (WebCore::GraphicsContext3D::deleteRenderbuffer):
2357         (WebCore::GraphicsContext3D::deleteShader):
2358         (WebCore::GraphicsContext3D::deleteTexture):
2359         (WebCore::GraphicsContext3D::sizeInBytes):
2360         (WebCore::GraphicsContext3D::synthesizeGLError):
2361
2362 2010-09-03  James Robinson  <jamesr@chromium.org>
2363
2364         Reviewed by Kenneth Russell.
2365
2366         Force 2d canvases to be rendered in software when the composite operation isn't source-over
2367         https://bugs.webkit.org/show_bug.cgi?id=45216
2368
2369         The current accelerated 2d canvas implementation is very slow for composite operations other
2370         than the default.  This patch forces a canvas to be rendered in software if any other operation
2371         is set until we accelerate the rest.
2372
2373         Tested by any of the fast/canvas tests that use a non-default globalCompositeOperation.
2374
2375         * html/canvas/CanvasRenderingContext2D.cpp:
2376         (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation):
2377         * platform/graphics/skia/PlatformContextSkia.cpp:
2378         (WebCore::PlatformContextSkia::setSharedGraphicsContext3D):
2379
2380 2010-09-03  Paul Sawaya  <psawaya@apple.com>
2381
2382         Reviewed by Chris Marrin.
2383
2384         Refactored out Mac specific code for platform/graphics/mac/GraphicsContext3D.mm file.
2385         Left general OpenGL code in platform/graphics/GraphicsContext3DOpenGL.cpp.
2386         https://bugs.webkit.org/show_bug.cgi?id=30625
2387
2388         * WebCore.gypi:
2389         * WebCore.xcodeproj/project.pbxproj:
2390         * html/canvas/WebGLObject.cpp:
2391         (WebCore::WebGLObject::deleteObject):
2392         * platform/graphics/ANGLEWebKitBridge.h:
2393         * platform/graphics/GraphicsContext3D.h:
2394         * platform/graphics/GraphicsContext3DOpenGL.cpp: Copied from platform/graphics/mac/GraphicsContext3DMac.mm.
2395         (WebCore::GraphicsContext3D::prepareTexture):
2396         (WebCore::GraphicsContext3D::activeTexture):
2397         (WebCore::GraphicsContext3D::attachShader):
2398         (WebCore::GraphicsContext3D::bindAttribLocation):
2399         (WebCore::GraphicsContext3D::bindBuffer):
2400         (WebCore::GraphicsContext3D::bindFramebuffer):
2401         (WebCore::GraphicsContext3D::bindRenderbuffer):
2402         (WebCore::GraphicsContext3D::bindTexture):
2403         (WebCore::GraphicsContext3D::blendColor):
2404         (WebCore::GraphicsContext3D::blendEquation):
2405         (WebCore::GraphicsContext3D::blendEquationSeparate):
2406         (WebCore::GraphicsContext3D::blendFunc):
2407         (WebCore::GraphicsContext3D::blendFuncSeparate):
2408         (WebCore::GraphicsContext3D::bufferData):
2409         (WebCore::GraphicsContext3D::bufferSubData):
2410         (WebCore::GraphicsContext3D::checkFramebufferStatus):
2411         (WebCore::GraphicsContext3D::clearColor):
2412         (WebCore::GraphicsContext3D::clear):
2413         (WebCore::GraphicsContext3D::clearDepth):
2414         (WebCore::GraphicsContext3D::clearStencil):
2415         (WebCore::GraphicsContext3D::colorMask):
2416         (WebCore::GraphicsContext3D::compileShader):
2417         (WebCore::GraphicsContext3D::copyTexImage2D):
2418         (WebCore::GraphicsContext3D::copyTexSubImage2D):
2419         (WebCore::GraphicsContext3D::cullFace):
2420         (WebCore::GraphicsContext3D::depthFunc):
2421         (WebCore::GraphicsContext3D::depthMask):
2422         (WebCore::GraphicsContext3D::depthRange):
2423         (WebCore::GraphicsContext3D::detachShader):
2424         (WebCore::GraphicsContext3D::disable):
2425         (WebCore::GraphicsContext3D::disableVertexAttribArray):
2426         (WebCore::GraphicsContext3D::drawArrays):
2427         (WebCore::GraphicsContext3D::drawElements):
2428         (WebCore::GraphicsContext3D::enable):
2429         (WebCore::GraphicsContext3D::enableVertexAttribArray):
2430         (WebCore::GraphicsContext3D::finish):
2431         (WebCore::GraphicsContext3D::flush):
2432         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
2433         (WebCore::GraphicsContext3D::framebufferTexture2D):
2434         (WebCore::GraphicsContext3D::frontFace):
2435         (WebCore::GraphicsContext3D::generateMipmap):
2436         (WebCore::GraphicsContext3D::getActiveAttrib):
2437         (WebCore::GraphicsContext3D::getActiveUniform):
2438         (WebCore::GraphicsContext3D::getAttachedShaders):
2439         (WebCore::GraphicsContext3D::getAttribLocation):
2440         (WebCore::GraphicsContext3D::getError):
2441         (WebCore::GraphicsContext3D::getString):
2442         (WebCore::GraphicsContext3D::hint):
2443         (WebCore::GraphicsContext3D::isBuffer):
2444         (WebCore::GraphicsContext3D::isEnabled):
2445         (WebCore::GraphicsContext3D::isFramebuffer):
2446         (WebCore::GraphicsContext3D::isProgram):
2447         (WebCore::GraphicsContext3D::isRenderbuffer):
2448         (WebCore::GraphicsContext3D::isShader):
2449         (WebCore::GraphicsContext3D::isTexture):
2450         (WebCore::GraphicsContext3D::lineWidth):
2451         (WebCore::GraphicsContext3D::linkProgram):
2452         (WebCore::GraphicsContext3D::pixelStorei):
2453         (WebCore::GraphicsContext3D::polygonOffset):
2454         (WebCore::GraphicsContext3D::readPixels):
2455         (WebCore::GraphicsContext3D::releaseShaderCompiler):
2456         (WebCore::GraphicsContext3D::renderbufferStorage):
2457         (WebCore::GraphicsContext3D::sampleCoverage):
2458         (WebCore::GraphicsContext3D::scissor):
2459         (WebCore::GraphicsContext3D::shaderSource):
2460         (WebCore::GraphicsContext3D::stencilFunc):
2461         (WebCore::GraphicsContext3D::stencilFuncSeparate):
2462         (WebCore::GraphicsContext3D::stencilMask):
2463         (WebCore::GraphicsContext3D::stencilMaskSeparate):
2464         (WebCore::GraphicsContext3D::stencilOp):
2465         (WebCore::GraphicsContext3D::stencilOpSeparate):
2466         (WebCore::GraphicsContext3D::texParameterf):
2467         (WebCore::GraphicsContext3D::texParameteri):
2468         (WebCore::GraphicsContext3D::uniform1f):
2469         (WebCore::GraphicsContext3D::uniform1fv):
2470         (WebCore::GraphicsContext3D::uniform2f):
2471         (WebCore::GraphicsContext3D::uniform2fv):
2472         (WebCore::GraphicsContext3D::uniform3f):
2473         (WebCore::GraphicsContext3D::uniform3fv):
2474         (WebCore::GraphicsContext3D::uniform4f):
2475         (WebCore::GraphicsContext3D::uniform4fv):
2476         (WebCore::GraphicsContext3D::uniform1i):
2477         (WebCore::GraphicsContext3D::uniform1iv):
2478         (WebCore::GraphicsContext3D::uniform2i):
2479         (WebCore::GraphicsContext3D::uniform2iv):
2480         (WebCore::GraphicsContext3D::uniform3i):
2481         (WebCore::GraphicsContext3D::uniform3iv):
2482         (WebCore::GraphicsContext3D::uniform4i):
2483         (WebCore::GraphicsContext3D::uniform4iv):
2484         (WebCore::GraphicsContext3D::uniformMatrix2fv):
2485         (WebCore::GraphicsContext3D::uniformMatrix3fv):
2486         (WebCore::GraphicsContext3D::uniformMatrix4fv):
2487         (WebCore::GraphicsContext3D::useProgram):
2488         (WebCore::GraphicsContext3D::validateProgram):
2489         (WebCore::GraphicsContext3D::vertexAttrib1f):
2490         (WebCore::GraphicsContext3D::vertexAttrib1fv):
2491         (WebCore::GraphicsContext3D::vertexAttrib2f):
2492         (WebCore::GraphicsContext3D::vertexAttrib2fv):
2493         (WebCore::GraphicsContext3D::vertexAttrib3f):
2494         (WebCore::GraphicsContext3D::vertexAttrib3fv):
2495         (WebCore::GraphicsContext3D::vertexAttrib4f):
2496         (WebCore::GraphicsContext3D::vertexAttrib4fv):
2497         (WebCore::GraphicsContext3D::vertexAttribPointer):
2498         (WebCore::GraphicsContext3D::viewport):
2499         (WebCore::GraphicsContext3D::getBooleanv):
2500         (WebCore::GraphicsContext3D::getBufferParameteriv):
2501         (WebCore::GraphicsContext3D::getFloatv):
2502         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
2503         (WebCore::GraphicsContext3D::getIntegerv):
2504         (WebCore::GraphicsContext3D::getProgramiv):
2505         (WebCore::GraphicsContext3D::getProgramInfoLog):
2506         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
2507         (WebCore::GraphicsContext3D::getShaderiv):
2508         (WebCore::GraphicsContext3D::getShaderInfoLog):
2509         (WebCore::GraphicsContext3D::getShaderSource):
2510         (WebCore::GraphicsContext3D::getTexParameterfv):
2511         (WebCore::GraphicsContext3D::getTexParameteriv):
2512         (WebCore::GraphicsContext3D::getUniformfv):
2513         (WebCore::GraphicsContext3D::getUniformiv):
2514         (WebCore::GraphicsContext3D::getUniformLocation):
2515         (WebCore::GraphicsContext3D::getVertexAttribfv):
2516         (WebCore::GraphicsContext3D::getVertexAttribiv):
2517         (WebCore::GraphicsContext3D::getVertexAttribOffset):
2518         (WebCore::GraphicsContext3D::texImage2D):
2519         (WebCore::GraphicsContext3D::texSubImage2D):
2520         (WebCore::GraphicsContext3D::createBuffer):
2521         (WebCore::GraphicsContext3D::createFramebuffer):
2522         (WebCore::GraphicsContext3D::createProgram):
2523         (WebCore::GraphicsContext3D::createRenderbuffer):
2524         (WebCore::GraphicsContext3D::createShader):
2525         (WebCore::GraphicsContext3D::createTexture):
2526         (WebCore::GraphicsContext3D::deleteBuffer):
2527         (WebCore::GraphicsContext3D::deleteFramebuffer):
2528         (WebCore::GraphicsContext3D::deleteProgram):
2529         (WebCore::GraphicsContext3D::deleteRenderbuffer):
2530         (WebCore::GraphicsContext3D::deleteShader):
2531         (WebCore::GraphicsContext3D::deleteTexture):
2532         * platform/graphics/mac/GraphicsContext3DMac.mm:
2533         (WebCore::GraphicsContext3D::ensureContext):
2534         (WebCore::GraphicsContext3D::isErrorGeneratedOnOutOfBoundsAccesses):
2535
2536 2010-09-03  James Robinson  <jamesr@chromium.org>
2537
2538         Reviewed by Darin Fisher.
2539
2540         [chromium] Implement ImageBufferSkia::draw on the GPU when possible
2541         https://bugs.webkit.org/show_bug.cgi?id=45207
2542
2543         When drawing from an ImageBuffer into a GraphicsContext, attempt to do the
2544         draw in hardware when possible.  This is how canvas 2d's drawImage(canvas, ...)
2545         is implemented.  Adds new API to DrawingBuffer to request a texture containing
2546         the DrawingBuffer's current rendering results.
2547
2548         Test: covered fast/canvas/drawImage.html and all other tests that draw from one
2549         2d canvas into another.
2550
2551         * html/canvas/CanvasRenderingContext2D.cpp:
2552         (WebCore::CanvasRenderingContext2D::drawImage):
2553         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2554         (WebCore::DrawingBuffer::getRenderingResultsAsTexture):
2555         * platform/graphics/gpu/DrawingBuffer.h:
2556         * platform/graphics/skia/ImageBufferSkia.cpp:
2557         (WebCore::ImageBuffer::draw):
2558
2559 2010-09-03  James Robinson  <jamesr@chromium.org>
2560
2561         Reviewed by Kenneth Russell.
2562
2563         [chromium] Null out Canvas2DLayerChromium's back reference to DrawingBuffer on destruction
2564         https://bugs.webkit.org/show_bug.cgi?id=45187
2565
2566         Canvas2DLayerChromium keeps a back reference to a DrawingBuffer.  This has to be a raw pointer
2567         because the DrawingBuffer holds a RefPtr to the Canvas2DLayerChromium.  Since the layer can
2568         outlive the buffer, this back reference has to be explicitly cleared when the DrawingBuffer
2569         is destroyed.
2570
2571         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2572         (WebCore::Canvas2DLayerChromium::setDrawingBuffer):
2573         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2574         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2575         (WebCore::DrawingBuffer::~DrawingBuffer):
2576
2577 2010-09-03  Kenneth Russell  <kbr@google.com>
2578
2579         Reviewed by Darin Fisher.
2580
2581         Add interval tree capable of holding plain old data (POD)
2582         https://bugs.webkit.org/show_bug.cgi?id=45160
2583
2584         Adding an interval tree currently capable of holding types which
2585         do not require their destructors to be called. POD is a slight
2586         misnomer which will be corrected soon, hopefully by removing this
2587         restriction.
2588
2589         This class is based on the augmentable property of the red/black
2590         tree integrated under bug 45059.
2591
2592         Unit tests for the PODIntervalTree will be integrated separately
2593         under bug 45161.
2594
2595         * WebCore.gypi:
2596         * platform/graphics/gpu/PODInterval.h: Added.
2597         (WebCore::PODInterval::PODInterval):
2598         (WebCore::PODInterval::low):
2599         (WebCore::PODInterval::high):
2600         (WebCore::PODInterval::data):
2601         (WebCore::PODInterval::overlaps):
2602         (WebCore::PODInterval::operator<):
2603         (WebCore::PODInterval::operator==):
2604         (WebCore::PODInterval::maxHigh):
2605         (WebCore::PODInterval::setMaxHigh):
2606         (WebCore::PODInterval::toString):
2607         * platform/graphics/gpu/PODIntervalTree.h: Added.
2608         (WebCore::PODIntervalTree::PODIntervalTree):
2609         (WebCore::PODIntervalTree::allOverlaps):
2610         (WebCore::PODIntervalTree::createInterval):
2611         (WebCore::PODIntervalTree::checkInvariants):
2612         (WebCore::PODIntervalTree::init):
2613         (WebCore::PODIntervalTree::searchForOverlapsFrom):
2614         (WebCore::PODIntervalTree::updateNode):
2615         (WebCore::PODIntervalTree::checkInvariantsFromNode):
2616         (WebCore::valueToString):
2617
2618 2010-09-02  Vangelis Kokkevis  <vangelis@chromium.org>
2619
2620         Reviewed by Darin Fisher.
2621
2622         [chromium] Gracefully switch over to software compositing if the accelerated
2623         compositor fails to initialize. LayerRendererChromium::create() will now return 0
2624         if the GLES2Context passed to it is NULL or the LayerRendererChromium failed to initialize
2625         hardware rendering.
2626         https://bugs.webkit.org/show_bug.cgi?id=45124
2627         
2628         Tested by forcing the creation of the gles2 context to fail and loading pages that normally trigger
2629         the compositor.
2630
2631         * platform/graphics/chromium/LayerRendererChromium.cpp:
2632         (WebCore::LayerRendererChromium::create):
2633         (WebCore::LayerRendererChromium::LayerRendererChromium):
2634         (WebCore::LayerRendererChromium::makeContextCurrent):
2635
2636 2010-09-03  Peter Kasting  <pkasting@google.com>
2637
2638         Reviewed by Simon Fraser.
2639
2640         Report correct (unzoomed) image sizes for zoomed images.
2641         https://bugs.webkit.org/show_bug.cgi?id=42089
2642
2643         Test: fast/images/zoomed-img-size.html
2644
2645         * css/CSSPrimitiveValue.cpp: Factor rounding code out to a templatized function so it can be shared.
2646         (WebCore::CSSPrimitiveValue::computeLengthInt):
2647         (WebCore::CSSPrimitiveValue::computeLengthIntForLength):
2648         (WebCore::CSSPrimitiveValue::computeLengthShort):
2649         * css/CSSPrimitiveValue.h: Factor rounding code out to a templatized function so it can be shared.
2650         (WebCore::roundForImpreciseConversion):
2651         * html/HTMLImageElement.cpp: Report unzoomed size to script that queries an image's width or height.
2652         (WebCore::HTMLImageElement::width):
2653         (WebCore::HTMLImageElement::height):
2654         * loader/ImageDocument.cpp: Report unzoomed size in the page title when viewing a standalone image.
2655         (WebCore::ImageDocumentParser::finish):
2656         * rendering/RenderObject.h: Use shared rounding code from CSSPrimitiveValue to compensate for inexactness in zoomed sizes.
2657         (WebCore::adjustForAbsoluteZoom):
2658
2659 2010-09-03  Sheriff Bot  <webkit.review.bot@gmail.com>
2660
2661         Unreviewed, rolling out r66770.
2662         http://trac.webkit.org/changeset/66770
2663         https://bugs.webkit.org/show_bug.cgi?id=45200
2664
2665         Broke Windows in a way I can't figure out now to fix
2666         (Requested by abarth on #webkit).
2667
2668         * GNUmakefile.am:
2669         * WebCore.gypi:
2670         * WebCore.pro:
2671         * WebCore.vcproj/WebCore.vcproj:
2672         * WebCore.xcodeproj/project.pbxproj:
2673         * bindings/generic/BindingDOMWindow.h:
2674         (WebCore::::completeURL):
2675         * bindings/generic/BindingFrame.h: Removed.
2676         * bindings/generic/BindingLocation.h: Removed.
2677         * bindings/generic/GenericBinding.h:
2678         * bindings/js/JSBinding.h: Removed.
2679         * bindings/js/JSBindingsAllInOne.cpp:
2680         * bindings/js/JSDOMBinding.cpp:
2681         (WebCore::shouldAllowNavigation):
2682         (WebCore::toLexicalFrame):
2683         (WebCore::toDynamicFrame):
2684         (WebCore::processingUserGesture):
2685         (WebCore::completeURL):
2686         * bindings/js/JSLocationCustom.cpp:
2687         (WebCore::navigateIfAllowed):
2688         (WebCore::JSLocation::replace):
2689         * bindings/js/specialization/JSBindingState.cpp: Removed.
2690         * bindings/js/specialization/JSBindingState.h: Removed.
2691         * bindings/v8/V8Binding.h:
2692         * bindings/v8/V8Utilities.cpp:
2693         (WebCore::completeURL):
2694         (WebCore::navigateIfAllowed):
2695         * bindings/v8/custom/V8LocationCustom.cpp:
2696         (WebCore::V8Location::replaceCallback):
2697         * bindings/v8/specialization/V8BindingState.cpp:
2698         * bindings/v8/specialization/V8BindingState.h:
2699
2700 2010-09-03  Jian Li  <jianli@chromium.org>
2701
2702         Reviewed by Darin Adler.
2703
2704         REGRESSION (r66452): Sending of multipart forms with files is broken.
2705         https://bugs.webkit.org/show_bug.cgi?id=45159
2706
2707         * platform/network/FormData.cpp:
2708         (WebCore::FormData::appendKeyValuePairItems):
2709
2710 2010-09-03  Dominic Cooney  <dominicc@google.com>
2711
2712         Reviewed by Adam Barth.
2713
2714         Moves location.replace bindings logic into bindings/generic and
2715         instantiates it for JSC and V8.
2716
2717         https://bugs.webkit.org/show_bug.cgi?id=44891
2718
2719         Covered by existing location.replace tests.
2720
2721         * GNUmakefile.am:
2722         * WebCore.gypi:
2723         * WebCore.pro:
2724         * WebCore.vcproj/WebCore.vcproj:
2725         * WebCore.xcodeproj/project.pbxproj:
2726         * bindings/generic/BindingDOMWindow.h:
2727         (WebCore::::createWindow):
2728         (WebCore::::open):
2729         * bindings/generic/BindingFrame.h: Added.
2730         (WebCore::::navigateIfAllowed):
2731         * bindings/generic/BindingLocation.h: Added.
2732         (WebCore::::replace):
2733         * bindings/generic/GenericBinding.h:
2734         (WebCore::completeURL):
2735         * bindings/js/JSBinding.h: Added.
2736         * bindings/js/JSBindingsAllInOne.cpp:
2737         * bindings/js/JSDOMBinding.cpp:
2738         (WebCore::shouldAllowNavigation):
2739         (WebCore::toLexicalFrame):
2740         (WebCore::toDynamicFrame):
2741         (WebCore::processingUserGesture):
2742         (WebCore::completeURL):
2743         * bindings/js/JSLocationCustom.cpp:
2744         (WebCore::navigateIfAllowed):
2745         (WebCore::JSLocation::replace):
2746         * bindings/js/specialization/JSBindingState.cpp: Added.
2747         (WebCore::::getActiveFrame):
2748         (WebCore::::getFirstFrame):
2749         (WebCore::::processingUserGesture):
2750         (WebCore::::allowsAccessFromFrame):
2751         * bindings/js/specialization/JSBindingState.h: Added.
2752         * bindings/v8/V8Binding.h:
2753         * bindings/v8/V8Utilities.cpp:
2754         (WebCore::completeURL):
2755         (WebCore::navigateIfAllowed):
2756         * bindings/v8/custom/V8LocationCustom.cpp:
2757         (WebCore::V8Location::replaceCallback):
2758         * bindings/v8/specialization/V8BindingState.cpp:
2759         (WebCore::::allowsAccessFromFrame):
2760         * bindings/v8/specialization/V8BindingState.h:
2761
2762 2010-09-03  Dimitri Glazkov  <dglazkov@chromium.org>
2763
2764         Reviewed by Tony Chang.
2765
2766         [Chromium] Make sure that the width of the menu list is always constant under layout tests.
2767         https://bugs.webkit.org/show_bug.cgi?id=45196
2768
2769         * rendering/RenderThemeChromiumWin.cpp:
2770         (WebCore::menuListButtonWidth): Added.
2771         (WebCore::RenderThemeChromiumWin::paintMenuList): Use menuListButtonWidth instead of always
2772           querying system metrics.
2773
2774 2010-09-03  Sheriff Bot  <webkit.review.bot@gmail.com>
2775
2776         Unreviewed, rolling out r66732.
2777         http://trac.webkit.org/changeset/66732
2778         https://bugs.webkit.org/show_bug.cgi?id=45195
2779
2780         the patch is not matched with general publish/subscribe scheme
2781         implemented in the Inspector API (Requested by loislo on
2782         #webkit).
2783
2784         * inspector/CodeGeneratorInspector.pm:
2785         * inspector/Inspector.idl:
2786         * inspector/InspectorDOMAgent.cpp:
2787         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
2788         (WebCore::InspectorDOMAgent::getChildNodes):
2789         * inspector/InspectorDOMAgent.h:
2790         * inspector/front-end/DOMAgent.js:
2791         (WebInspector.DOMAgent.prototype.getChildNodesAsync.mycallback):
2792         (WebInspector.DOMAgent.prototype.getChildNodesAsync):
2793         * inspector/front-end/WorkersSidebarPane.js:
2794         (WebInspector.WorkersSidebarPane.prototype.reset):
2795
2796 2010-09-03  James Robinson  <jamesr@chromium.org>
2797
2798         [chromium] Compile fixes for 66746
2799
2800         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
2801         (WebCore::SharedGraphicsContext3D::texImage2D):
2802         (WebCore::SharedGraphicsContext3D::texSubImage2D):
2803
2804 2010-09-03  Chris Rogers  <crogers@google.com>
2805
2806         Reviewed by Kenneth Russell.
2807
2808         Add AudioParam files
2809         https://bugs.webkit.org/show_bug.cgi?id=44995
2810
2811         No new tests since audio API is not yet implemented.
2812
2813         * webaudio: Added.
2814         * webaudio/AudioParam.h: Added.
2815         (WebCore::AudioParam::create):
2816         (WebCore::AudioParam::AudioParam):
2817         (WebCore::AudioParam::value):
2818         (WebCore::AudioParam::setValue):
2819         (WebCore::AudioParam::name):
2820         (WebCore::AudioParam::minValue):
2821         (WebCore::AudioParam::maxValue):
2822         (WebCore::AudioParam::defaultValue):
2823         (WebCore::AudioParam::units):
2824         (WebCore::AudioParam::smoothedValue):
2825         (WebCore::AudioParam::smooth):
2826         (WebCore::AudioParam::resetSmoothedValue):
2827         (WebCore::AudioParam::setSmoothingConstant):
2828         * webaudio/AudioParam.idl: Added.
2829
2830 2010-09-03  Chris Rogers  <crogers@google.com>
2831
2832         Reviewed by Kenneth Russell.
2833
2834         audio engine: add AudioChannel files
2835         https://bugs.webkit.org/show_bug.cgi?id=44921
2836
2837         No new tests since audio API is not yet implemented.
2838
2839         * platform/audio/AudioChannel.cpp: Added.
2840         (WebCore::AudioChannel::scale):
2841         (WebCore::AudioChannel::copyFrom):
2842         (WebCore::AudioChannel::copyFromRange):
2843         (WebCore::AudioChannel::sumFrom):
2844         (WebCore::AudioChannel::maxAbsValue):
2845         * platform/audio/AudioChannel.h: Added.
2846         (WebCore::AudioChannel::AudioChannel):
2847         (WebCore::AudioChannel::set):
2848         (WebCore::AudioChannel::length):
2849         (WebCore::AudioChannel::data):
2850         (WebCore::AudioChannel::zero):
2851
2852 2010-09-03  Patrick Gansterer  <paroga@paroga.com>
2853
2854         Reviewed by Adam Roben.
2855
2856         [WINCE] Remove usage of ce_textcodecs.h
2857         https://bugs.webkit.org/show_bug.cgi?id=45169
2858
2859         ce_textcodecs.h was a non public header for (not required)
2860         additonal codecs in the original Torch Mobile port.
2861
2862         * platform/text/wince/TextCodecWinCE.cpp:
2863         (WebCore::LanguageManager::LanguageManager):
2864         (WebCore::decode):
2865
2866 2010-09-03  Chris Rogers  <crogers@google.com>
2867
2868         Reviewed by Kenneth Russell.
2869
2870         Initial patch for audio engine: AudioBus and helper classes
2871         https://bugs.webkit.org/show_bug.cgi?id=34452
2872
2873         No new tests since audio API is not yet implemented.
2874
2875         * platform/audio/AudioBus.cpp: Added.
2876         (WebCore::AudioBus::AudioBus):
2877         (WebCore::AudioBus::setChannelMemory):
2878         (WebCore::AudioBus::zero):
2879         (WebCore::AudioBus::channelByType):
2880         (WebCore::AudioBus::topologyMatches):
2881         (WebCore::AudioBus::createBufferFromRange):
2882         (WebCore::AudioBus::maxAbsValue):
2883         (WebCore::AudioBus::normalize):
2884         (WebCore::AudioBus::scale):
2885         (WebCore::AudioBus::copyFrom):
2886         (WebCore::AudioBus::sumFrom):
2887         (WebCore::AudioBus::processWithGainFromMonoStereo):
2888         (WebCore::AudioBus::processWithGainFrom):
2889         (WebCore::AudioBus::copyWithGainFrom):
2890         (WebCore::AudioBus::sumWithGainFrom):
2891         * platform/audio/AudioBus.h: Added.
2892         (WebCore::AudioBus::numberOfChannels):
2893         (WebCore::AudioBus::channel):
2894         (WebCore::AudioBus::length):
2895         (WebCore::AudioBus::sampleRate):
2896         (WebCore::AudioBus::setSampleRate):
2897         (WebCore::AudioBus::setGain):
2898         (WebCore::AudioBus::gain):
2899         (WebCore::AudioBus::reset):
2900         (WebCore::AudioBus::AudioBus):
2901         * platform/audio/AudioSourceProvider.h: Added.
2902         (WebCore::AudioSourceProvider::~AudioSourceProvider):
2903
2904 2010-09-03  Chris Rogers  <crogers@google.com>
2905
2906         Reviewed by Kenneth Russell.
2907
2908         Add Panner files
2909         https://bugs.webkit.org/show_bug.cgi?id=45076
2910
2911         No new tests since audio API is not yet implemented.
2912
2913         * platform/audio/Panner.cpp: Added.
2914         (WebCore::Panner::create):
2915         * platform/audio/Panner.h: Added.
2916         (WebCore::Panner::~Panner):
2917         (WebCore::Panner::panningModel):
2918         (WebCore::Panner::Panner):
2919
2920 2010-09-03  Chris Rogers  <crogers@google.com>
2921
2922         Reviewed by Kenneth Russell.
2923
2924         Add AudioListener files
2925         https://bugs.webkit.org/show_bug.cgi?id=45006
2926
2927         No new tests since audio API is not yet implemented.
2928
2929         * webaudio: Added.
2930         * webaudio/AudioListener.cpp: Added.
2931         (WebCore::AudioListener::AudioListener):
2932         * webaudio/AudioListener.h: Added.
2933         (WebCore::AudioListener::create):
2934         (WebCore::AudioListener::setPosition):
2935         (WebCore::AudioListener::position):
2936         (WebCore::AudioListener::setOrientation):
2937         (WebCore::AudioListener::orientation):
2938         (WebCore::AudioListener::setUpVector):
2939         (WebCore::AudioListener::upVector):
2940         (WebCore::AudioListener::setVelocity):
2941         (WebCore::AudioListener::velocity):
2942         (WebCore::AudioListener::setDopplerFactor):
2943         (WebCore::AudioListener::dopplerFactor):
2944         (WebCore::AudioListener::setSpeedOfSound):
2945         (WebCore::AudioListener::speedOfSound):
2946         * webaudio/AudioListener.idl: Added.
2947
2948 2010-09-03  Chris Rogers  <crogers@google.com>
2949
2950         Unreviewed
2951
2952         Add WebCore/webaudio and WebCore/platform/audio/mac directories in preparation for landing reviewed patches
2953         https://bugs.webkit.org/show_bug.cgi?id=45185
2954
2955         * platform/audio/mac: Added.
2956         * webaudio: Added.
2957
2958 2010-09-03  James Robinson  <jamesr@chromium.org>
2959
2960         Reviewed by Chris Marrin.
2961
2962         Multiple accelerated 2D canvases should be able to use the same GraphicsContext3D
2963         https://bugs.webkit.org/show_bug.cgi?id=44926
2964
2965         This allows many accelerated 2d canvases to render using a single underlying GraphicsContext3D.
2966         It introduces a new class SharedGraphicsContext3D that manages several callers.  This class could
2967         also cache the current state to avoid issuing redundant calls, although in this first cut it doesn't.
2968         The SharedGraphicsContext3D is provided through the ChromeClient so that its lifetime can be tied to that
2969         of the platform-specific compositor infrastructure.
2970
2971         Accelerated 2d canvases maintain a reference to a SharedGraphicsContext3D and have ownership of a CanvasFramebuffer,
2972         which represents the canvas's rendering target.  The compositing layer for an accelerated 2d canvas is
2973         aware only of the canvas's CanvasFramebuffer.  This means that WebGL and 2d canvases are no longer treated
2974         as the same time of layer by the compositor.
2975
2976         Covered by existing canvas tests.
2977
2978         * WebCore.gypi:
2979         * html/canvas/CanvasRenderingContext.cpp:
2980         * html/canvas/CanvasRenderingContext.h:
2981         (WebCore::CanvasRenderingContext::paintsIntoCanvasBuffer):
2982         (WebCore::CanvasRenderingContext::platformLayer):
2983         * html/canvas/CanvasRenderingContext2D.cpp:
2984         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
2985         (WebCore::CanvasRenderingContext2D::paintsIntoCanvasBuffer):
2986         (WebCore::CanvasRenderingContext2D::reset):
2987         (WebCore::CanvasRenderingContext2D::didDraw):
2988         (WebCore::CanvasRenderingContext2D::platformLayer):
2989         * html/canvas/CanvasRenderingContext2D.h:
2990         * html/canvas/WebGLRenderingContext.cpp:
2991         (WebCore::WebGLRenderingContext::paintsIntoCanvasBuffer):
2992         * html/canvas/WebGLRenderingContext.h:
2993         (WebCore::WebGLRenderingContext::graphicsContext3D):
2994         (WebCore::WebGLRenderingContext::platformLayer):
2995         * loader/EmptyClients.h:
2996         (WebCore::EmptyChromeClient::attachRootGraphicsLayer):
2997         (WebCore::EmptyChromeClient::setNeedsOneShotDrawingSynchronization):
2998         (WebCore::EmptyChromeClient::scheduleCompositingLayerSync):
2999         * page/ChromeClient.h:
3000         (WebCore::ChromeClient::getSharedGraphicsContext3D):
3001         * platform/graphics/GraphicsContext.cpp:
3002         (WebCore::GraphicsContext::setSharedGraphicsContext3D):
3003         (WebCore::GraphicsContext::syncSoftwareCanvas):
3004         * platform/graphics/GraphicsContext.h:
3005         * platform/graphics/chromium/Canvas2DLayerChromium.cpp: Added.
3006         (WebCore::Canvas2DLayerChromium::create):
3007         (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
3008         (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
3009         (WebCore::Canvas2DLayerChromium::updateContents):
3010         (WebCore::Canvas2DLayerChromium::setTextureChanged):
3011         (WebCore::Canvas2DLayerChromium::textureId):
3012         * platform/graphics/chromium/Canvas2DLayerChromium.h: Added.
3013         (WebCore::Canvas2DLayerChromium::drawsContent):
3014         * platform/graphics/chromium/CanvasLayerChromium.cpp:
3015         (WebCore::CanvasLayerChromium::CanvasLayerChromium):
3016         (WebCore::CanvasLayerChromium::~CanvasLayerChromium):
3017         (WebCore::CanvasLayerChromium::draw):
3018         * platform/graphics/chromium/CanvasLayerChromium.h:
3019         * platform/graphics/chromium/DrawingBufferChromium.cpp: Added.
3020         (WebCore::generateColorTexture):
3021         (WebCore::DrawingBuffer::DrawingBuffer):
3022         (WebCore::DrawingBuffer::~DrawingBuffer):
3023         (WebCore::DrawingBuffer::publishToPlatformLayer):
3024         (WebCore::DrawingBuffer::reset):
3025         (WebCore::DrawingBuffer::platformLayer):
3026         * platform/graphics/chromium/GLES2Canvas.cpp:
3027         (WebCore::GLES2Canvas::GLES2Canvas):
3028         (WebCore::GLES2Canvas::~GLES2Canvas):
3029         (WebCore::GLES2Canvas::bindFramebuffer):
3030         (WebCore::GLES2Canvas::clearRect):
3031         (WebCore::GLES2Canvas::fillRect):
3032         (WebCore::GLES2Canvas::drawTexturedRect):
3033         (WebCore::GLES2Canvas::drawTexturedRectTile):
3034         (WebCore::GLES2Canvas::drawQuad):
3035         (WebCore::GLES2Canvas::createTexture):
3036         (WebCore::GLES2Canvas::getTexture):
3037         * platform/graphics/chromium/GLES2Canvas.h:
3038         (WebCore::GLES2Canvas::context):
3039         (WebCore::GLES2Canvas::drawingBuffer):
3040         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
3041         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
3042         * platform/graphics/chromium/GraphicsLayerChromium.h:
3043         * platform/graphics/chromium/WebGLLayerChromium.cpp: Added.
3044         (WebCore::WebGLLayerChromium::create):
3045         (WebCore::WebGLLayerChromium::WebGLLayerChromium):
3046         (WebCore::WebGLLayerChromium::updateContents):
3047         (WebCore::WebGLLayerChromium::setContext):
3048         * platform/graphics/chromium/WebGLLayerChromium.h: Added.
3049         (WebCore::WebGLLayerChromium::drawsContent):
3050         * platform/graphics/gpu/DrawingBuffer.cpp: Added.
3051         (WebCore::DrawingBuffer::create):
3052         (WebCore::DrawingBuffer::bind):
3053         (WebCore::DrawingBuffer::setWillPublishCallback):
3054         * platform/graphics/gpu/DrawingBuffer.h: Added.
3055         (WebCore::DrawingBuffer::size):
3056         * platform/graphics/gpu/SharedGraphicsContext3D.cpp: Added.
3057         (WebCore::SharedGraphicsContext3D::create):
3058         (WebCore::SharedGraphicsContext3D::SharedGraphicsContext3D):
3059         (WebCore::SharedGraphicsContext3D::~SharedGraphicsContext3D):
3060         (WebCore::SharedGraphicsContext3D::makeContextCurrent):
3061         (WebCore::SharedGraphicsContext3D::scissor):
3062         (WebCore::SharedGraphicsContext3D::enable):
3063         (WebCore::SharedGraphicsContext3D::disable):
3064         (WebCore::SharedGraphicsContext3D::clearColor):
3065         (WebCore::SharedGraphicsContext3D::clear):
3066         (WebCore::SharedGraphicsContext3D::drawArrays):
3067         (WebCore::SharedGraphicsContext3D::getError):
3068         (WebCore::SharedGraphicsContext3D::getIntegerv):
3069         (WebCore::SharedGraphicsContext3D::createFramebuffer):
3070         (WebCore::SharedGraphicsContext3D::createTexture):
3071         (WebCore::SharedGraphicsContext3D::deleteFramebuffer):
3072         (WebCore::SharedGraphicsContext3D::deleteTexture):
3073         (WebCore::SharedGraphicsContext3D::framebufferTexture2D):
3074         (WebCore::SharedGraphicsContext3D::texParameteri):
3075         (WebCore::SharedGraphicsContext3D::texImage2D):
3076         (WebCore::SharedGraphicsContext3D::texSubImage2D):
3077         (WebCore::SharedGraphicsContext3D::readPixels):
3078         (WebCore::SharedGraphicsContext3D::supportsBGRA):
3079         (WebCore::SharedGraphicsContext3D::getTexture):
3080         (WebCore::SharedGraphicsContext3D::applyCompositeOperator):
3081         (WebCore::SharedGraphicsContext3D::useQuadVertices):
3082         (WebCore::SharedGraphicsContext3D::setActiveTexture):
3083         (WebCore::SharedGraphicsContext3D::bindTexture):
3084         (WebCore::SharedGraphicsContext3D::useFillSolidProgram):
3085         (WebCore::SharedGraphicsContext3D::useTextureProgram):
3086         (WebCore::SharedGraphicsContext3D::bindFramebuffer):
3087         (WebCore::SharedGraphicsContext3D::setViewport):
3088         (WebCore::SharedGraphicsContext3D::paintsIntoCanvasBuffer):
3089         * platform/graphics/gpu/SharedGraphicsContext3D.h: Added.
3090         * platform/graphics/gpu/Texture.cpp:
3091         * platform/graphics/skia/GraphicsContextSkia.cpp:
3092         (WebCore::GraphicsContext::syncSoftwareCanvas):
3093         (WebCore::GraphicsContext::setSharedGraphicsContext3D):
3094         * platform/graphics/skia/ImageSkia.cpp:
3095         * platform/graphics/skia/PlatformContextSkia.cpp:
3096         (WebCore::PlatformContextSkia::~PlatformContextSkia):
3097         (WebCore::WillPublishCallbackImpl::create):
3098         (WebCore::WillPublishCallbackImpl::willPublish):
3099         (WebCore::WillPublishCallbackImpl::WillPublishCallbackImpl):
3100         (WebCore::PlatformContextSkia::setSharedGraphicsContext3D):
3101         (WebCore::PlatformContextSkia::uploadSoftwareToHardware):
3102         (WebCore::PlatformContextSkia::readbackHardwareToSoftware):
3103         * platform/graphics/skia/PlatformContextSkia.h:
3104         * rendering/RenderLayerBacking.cpp:
3105         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3106
3107 2010-09-03  Chris Rogers  <crogers@google.com>
3108
3109         Reviewed by Kenneth Russell.
3110
3111         Add audio distance effect files
3112         https://bugs.webkit.org/show_bug.cgi?id=44705
3113
3114         No new tests since audio API is not yet implemented.
3115
3116         * platform/audio/Distance.cpp: Added.
3117         (WebCore::DistanceEffect::DistanceEffect):
3118         (WebCore::DistanceEffect::gain):
3119         (WebCore::DistanceEffect::linearGain):
3120         (WebCore::DistanceEffect::inverseGain):
3121         (WebCore::DistanceEffect::exponentialGain):
3122         * platform/audio/Distance.h: Added.
3123         (WebCore::DistanceEffect::model):
3124         (WebCore::DistanceEffect::setModel):
3125         (WebCore::DistanceEffect::setRefDistance):
3126         (WebCore::DistanceEffect::setMaxDistance):
3127         (WebCore::DistanceEffect::setRolloffFactor):
3128         (WebCore::DistanceEffect::refDistance):
3129         (WebCore::DistanceEffect::maxDistance):
3130         (WebCore::DistanceEffect::rolloffFactor):
3131
3132 2010-09-03  Johnny Ding  <jnd@chromium.org>
3133
3134         Reviewed by Adam Barth.
3135
3136         Save the gesture state to track the user gesture state across async form submission.
3137         https://bugs.webkit.org/show_bug.cgi?id=44969
3138
3139         fast/events/popup-blocked-to-post-blank.html can cover the test in WebKit.
3140         A UI test will be added in chromium to address chromium's bug.
3141
3142         * loader/RedirectScheduler.cpp:
3143         (WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
3144         (WebCore::ScheduledFormSubmission::fire):
3145         (WebCore::RedirectScheduler::scheduleFormSubmission):
3146
3147 2010-09-03  Dan Bernstein  <mitz@apple.com>
3148
3149         Reviewed by Anders Carlsson.
3150
3151         <rdar://problem/8392655> REGRESSION (r57215): Decomposed diacritics render incorrectly when preceded by stacked diacritics
3152         https://bugs.webkit.org/show_bug.cgi?id=45182
3153
3154         Test: fast/text/decomposed-after-stacked-diacritics.html
3155
3156         * platform/graphics/Font.cpp:
3157         (WebCore::Font::codePath): Do not bail out if the run contains stacked diacritics, since
3158         it may also contain characters that require the complex text code path.
3159
3160 2010-09-03  Mikhail Naganov  <mnaganov@chromium.org>
3161
3162         Reviewed by Yury Semikhatsky.
3163
3164         Web Inspector: Cleanup after r66117 - extract heap snapshot
3165         view styles into a dedicated .css
3166
3167         https://bugs.webkit.org/show_bug.cgi?id=45178
3168
3169         * WebCore.gypi:
3170         * WebCore.vcproj/WebCore.vcproj:
3171         * inspector/front-end/WebKit.qrc:
3172         * inspector/front-end/heapProfiler.css: Added.
3173         (.heap-snapshot-sidebar-tree-item .icon):
3174         (.heap-snapshot-sidebar-tree-item.small .icon):
3175         (.heap-snapshot-view):
3176         (.heap-snapshot-view.visible):
3177         (.heap-snapshot-view .data-grid):
3178         (.heap-snapshot-view .data-grid th.count-column):
3179         (.heap-snapshot-view .data-grid td.count-column):
3180         (.heap-snapshot-view .data-grid th.size-column):
3181         (.heap-snapshot-view .data-grid td.size-column):
3182         (.heap-snapshot-view .data-grid th.countDelta-column):
3183         (.heap-snapshot-view .data-grid td.countDelta-column):
3184         (.heap-snapshot-view .data-grid th.sizeDelta-column):
3185         (.heap-snapshot-view .data-grid td.sizeDelta-column):
3186         (#heap-snapshot-summary-container):
3187         (.heap-snapshot-summary):
3188         (.heap-snapshot-summary canvas.summary-graph):
3189         (.heap-snapshot-summary-label):
3190         * inspector/front-end/inspector.css:
3191         * inspector/front-end/inspector.html:
3192
3193 2010-09-03  Zaheer Ahmad <zaheer.mot@gmail.com>
3194
3195         Reviewed by Darin Adler.
3196
3197         [GTK] compilation issue with JSTimeRanges when video turned off
3198         https://bugs.webkit.org/show_bug.cgi?id=44249
3199
3200         Move the JSTimeRanges outside ENABLE_VIDEO in GNUMakefile.am
3201         * WebCore/GNUMakefile.am
3202
3203 2010-09-03  Ilya Tikhonovsky  <loislo@chromium.org>
3204
3205         Reviewed by Yury Semikhatsky.
3206
3207         Web Inspector: cleanup inspector api. getChildNodes should return array of child nodes as an output value.
3208
3209         The current implementation of the inspector api has some unnecessary complexity. 
3210         As example WebInspector is requesting child nodes of a node by getChildNodes
3211         but DOM agent is actually pushing the child nodes via setChildNodes event call and
3212         send back an empty response message.
3213
3214         https://bugs.webkit.org/show_bug.cgi?id=45172
3215
3216         * inspector/CodeGeneratorInspector.pm:
3217         * inspector/Inspector.idl:
3218         * inspector/InspectorDOMAgent.cpp:
3219         (WebCore::InspectorDOMAgent::getChildNodesArray):
3220         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
3221         (WebCore::InspectorDOMAgent::getChildNodes):
3222         * inspector/InspectorDOMAgent.h:
3223         * inspector/front-end/DOMAgent.js:
3224         (WebInspector.DOMAgent.prototype.getChildNodesAsync.mycallback):
3225         (WebInspector.DOMAgent.prototype.getChildNodesAsync):
3226         * inspector/front-end/WorkersSidebarPane.js:
3227         (WebInspector.WorkersSidebarPane.prototype.reset):
3228
3229 2010-09-03  Nikolas Zimmermann  <nzimmermann@rim.com>
3230
3231         Reviewed by Dirk Schulze.
3232
3233         SVG atlas map slider doesn't work properly
3234         https://bugs.webkit.org/show_bug.cgi?id=45107
3235
3236         SVG 1.1 2nd edition relaxes hit testing rules. The outermost <svg> should react
3237         to mouse events, in standalone and compound documents, if the mouse location is
3238         within the intrinsic boundaries of the <svg> element.
3239
3240         Tests: svg/custom/mouse-move-on-svg-container-standalone.svg
3241                svg/custom/mouse-move-on-svg-container.xhtml
3242                svg/custom/mouse-move-on-svg-root-standalone.svg
3243                svg/custom/mouse-move-on-svg-root.xhtml
3244
3245         * rendering/RenderSVGRoot.cpp:
3246         (WebCore::RenderSVGRoot::nodeAtPoint):
3247
3248 2010-09-03  Pavel Podivilov  <podivilov@chromium.org>
3249
3250         Reviewed by Yury Semikhatsky.
3251
3252         Web Inspector: provide more information to front-end when breaking on DOM event
3253         https://bugs.webkit.org/show_bug.cgi?id=44679
3254
3255         * dom/ContainerNode.cpp:
3256         (WebCore::ContainerNode::insertBefore):
3257         (WebCore::ContainerNode::parserInsertBefore):
3258         (WebCore::ContainerNode::replaceChild):
3259         (WebCore::ContainerNode::appendChild):
3260         (WebCore::ContainerNode::parserAddChild):
3261         (WebCore::notifyChildInserted):
3262         (WebCore::dispatchChildRemovalEvents):
3263         * dom/Element.cpp:
3264         (WebCore::Element::setAttribute):
3265         (WebCore::Element::removeAttribute):
3266         * inspector/Inspector.idl:
3267         * inspector/InspectorController.cpp:
3268         (WebCore::InspectorController::willInsertDOMNodeImpl):
3269         (WebCore::InspectorController::didInsertDOMNodeImpl):
3270         (WebCore::InspectorController::willRemoveDOMNodeImpl):
3271         (WebCore::InspectorController::didRemoveDOMNodeImpl):
3272         (WebCore::InspectorController::willModifyDOMAttrImpl):
3273         (WebCore::InspectorController::didModifyDOMAttrImpl):
3274         * inspector/InspectorController.h:
3275         (WebCore::InspectorController::willInsertDOMNode):
3276         (WebCore::InspectorController::didInsertDOMNode):
3277         (WebCore::InspectorController::willRemoveDOMNode):
3278         (WebCore::InspectorController::willModifyDOMAttr):
3279         (WebCore::InspectorController::didModifyDOMAttr):
3280         (WebCore::InspectorController::inspectorControllerForNode):
3281         * inspector/InspectorDOMAgent.cpp:
3282         (WebCore::InspectorDOMAgent::~InspectorDOMAgent):
3283         (WebCore::InspectorDOMAgent::shouldBreakOnNodeInsertion):
3284         (WebCore::InspectorDOMAgent::shouldBreakOnNodeRemoval):
3285         (WebCore::InspectorDOMAgent::shouldBreakOnAttributeModification):
3286         (WebCore::InspectorDOMAgent::didInsertDOMNode):
3287         (WebCore::InspectorDOMAgent::didRemoveDOMNode):
3288         (WebCore::InspectorDOMAgent::didModifyDOMAttr):
3289         (WebCore::InspectorDOMAgent::createBreakpoint):
3290         * inspector/InspectorDOMAgent.h:
3291         * inspector/InspectorDebuggerAgent.cpp:
3292         (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
3293         (WebCore::InspectorDebuggerAgent::~InspectorDebuggerAgent):
3294         (WebCore::InspectorDebuggerAgent::didPause):
3295         (WebCore::InspectorDebuggerAgent::breakProgram):
3296         * inspector/InspectorDebuggerAgent.h:
3297         * inspector/InspectorValues.h:
3298         (WebCore::InspectorValue::isNull):
3299         * inspector/front-end/BreakpointsSidebarPane.js:
3300         (WebInspector.BreakpointItem):
3301         (WebInspector.BreakpointItem.prototype._enableChanged):
3302         * inspector/front-end/Script.js:
3303         (WebInspector.Script.prototype.get linesCount):
3304         * inspector/front-end/inspector.js:
3305         (WebInspector.pausedScript):
3306
3307 2010-08-31  Jeremy Orlow  <jorlow@chromium.org>
3308
3309         Reviewed by Steve Block.
3310
3311         IDBCursor.continue() should reuse the .openCursor's IDBRequest object
3312         https://bugs.webkit.org/show_bug.cgi?id=44953
3313
3314         This is to match the spec. This requires a modification to IDBRequest so
3315         that multiple events can be queued up.
3316
3317         Note that the initial state for IDBRequest was removed from the spec.
3318
3319         Test: modified existing test to verify new behavior.
3320
3321         * storage/IDBAny.cpp:
3322         (WebCore::IDBAny::createInvalid):
3323         (WebCore::IDBAny::createNull):
3324         (WebCore::IDBAny::setNull):
3325         * storage/IDBAny.h:
3326         (WebCore::IDBAny::create):
3327         * storage/IDBCursor.cpp:
3328         (WebCore::IDBCursor::IDBCursor):
3329         (WebCore::IDBCursor::continueFunction):
3330         * storage/IDBCursor.h:
3331         (WebCore::IDBCursor::create):
3332         * storage/IDBCursor.idl:
3333         * storage/IDBRequest.cpp:
3334         (WebCore::IDBRequest::IDBRequest):
3335         (WebCore::IDBRequest::~IDBRequest):
3336         (WebCore::IDBRequest::resetReadyState):
3337         (WebCore::IDBRequest::onError):
3338         (WebCore::IDBRequest::onSuccess):
3339         (WebCore::IDBRequest::abort):
3340         (WebCore::IDBRequest::timerFired):
3341         (WebCore::IDBRequest::scheduleEvent):
3342         * storage/IDBRequest.h:
3343         * storage/IDBRequest.idl:
3344
3345 2010-09-03  Bharathwaaj Srinivasan  <bharathwaaj.s@gmail.com>
3346
3347         Reviewed by Xan Lopez.
3348
3349         Initialize keyboard events before passing plugins.
3350         https://bugs.webkit.org/show_bug.cgi?id=44771
3351
3352         No new tests needed since this is a trivial fix.
3353
3354         * plugins/gtk/PluginViewGtk.cpp:
3355         (WebCore::PluginView::handleKeyboardEvent):
3356
3357 2010-09-03  Yury Semikhatsky  <yurys@chromium.org>
3358
3359         Unreviewed. Fix Qt compilation.
3360
3361         * html/HTMLEmbedElement.cpp:
3362         (WebCore::HTMLEmbedElement::parametersForPlugin):
3363
3364 2010-09-03  Hironori Bono  <hbono@chromium.org>
3365
3366         Reviewed by Kent Tamura.
3367
3368         Adds textInputController.hasSpellingMarker() to avoid using pixel tests for spellchecking tests
3369         and implements it for Mac.
3370         https://bugs.webkit.org/show_bug.cgi?id=41832
3371
3372         Tests: editing/spelling/spelling-contenteditable.html
3373                editing/spelling/spelling-textarea.html
3374
3375         * WebCore.exp.in: Exported symbols used by [WebFrame hasSpellingMarker:length:].
3376
3377 2010-09-02  Yury Semikhatsky  <yurys@chromium.org>
3378
3379         Reviewed by Pavel Feldman.
3380
3381         REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector
3382         https://bugs.webkit.org/show_bug.cgi?id=44230
3383
3384         * inspector/Inspector.idl:
3385         * inspector/InspectorController.cpp:
3386         (WebCore::InspectorController::inspectedPageDestroyed):
3387         (WebCore::InspectorController::close):
3388         * inspector/InspectorFrontendClient.h:
3389         * inspector/InspectorFrontendHost.cpp:
3390         (WebCore::InspectorFrontendHost::disconnectFromBackend): don't try to notify InspectorController
3391         that frontend closes if InspectorController triggered the action.
3392         * inspector/InspectorFrontendHost.h:
3393         * inspector/InspectorFrontendHost.idl:
3394         * inspector/front-end/InspectorFrontendHostStub.js:
3395         (.WebInspector.InspectorFrontendHostStub.prototype.disconnectFromBackend):
3396         * inspector/front-end/inspector.js:
3397         (WebInspector.disconnectFromBackend):
3398
3399 2010-09-03  Girish Ramakrishnan  <girish@forwardbias.in>
3400
3401         Reviewed-by Simon Hausmann.
3402
3403         Passing a 32-bit depth X pixmap to NPAPI windowless plugins is too inefficient. 
3404         Instead, pass a X Pixmap that has same depth as the screen depth since graphics 
3405         operations are optimized for this depth.
3406
3407         https://bugs.webkit.org/show_bug.cgi?id=45167
3408
3409         * plugins/PluginPackage.cpp:
3410         (WebCore::PluginPackage::determineQuirks):
3411
3412 2010-09-02  Kwang Yul Seo  <skyul@company100.net>
3413
3414         Reviewed by Kent Tamura.
3415
3416         Add ENABLE(DATABASE) guard to DatabaseAuthorizer.cpp
3417         https://bugs.webkit.org/show_bug.cgi?id=45152
3418
3419         DatabaseAuthorizer is used only with ENABLE(DATABASE).
3420
3421         * storage/DatabaseAuthorizer.cpp:
3422
3423 2010-09-02  Pavel Podivilov  <podivilov@chromium.org>
3424
3425         Reviewed by Yury Semikhatsky.
3426
3427         Web Inspector: persist DOM breakpoints between page reloads
3428         https://bugs.webkit.org/show_bug.cgi?id=44837
3429
3430         * inspector/front-end/BreakpointsSidebarPane.js:
3431         (WebInspector.DOMBreakpointItem):
3432         * inspector/front-end/DOMAgent.js:
3433         (WebInspector.DOMNode.prototype.path):
3434         (WebInspector.DOMNode.prototype.setBreakpoint):
3435         (WebInspector.DOMNode.prototype.hasBreakpoint):
3436         (WebInspector.DOMNode.prototype.removeBreakpoint):
3437         (WebInspector.DOMNode.prototype.removeBreakpoints):
3438         (WebInspector.DOMAgent.prototype._setDocument):
3439         (WebInspector.DOMAgent.prototype._childNodeRemoved):
3440         (WebInspector.DOMAgent.prototype._removeBreakpoints):
3441         (WebInspector.DOMBreakpointManager):
3442         (WebInspector.DOMBreakpointManager.prototype.setBreakpoint):
3443         (WebInspector.DOMBreakpointManager.prototype.removeBreakpointsForNode):
3444         (WebInspector.DOMBreakpointManager.prototype._breakpointRemoved):
3445         (WebInspector.DOMBreakpointManager.prototype.restoreBreakpoints.restoreBreakpointsForNode):
3446         (WebInspector.DOMBreakpointManager.prototype.restoreBreakpoints):
3447         (WebInspector.DOMBreakpoint):
3448         (WebInspector.DOMBreakpoint.prototype.get nodeId):
3449         (WebInspector.DOMBreakpoint.prototype.get type):
3450         (WebInspector.DOMBreakpoint.prototype.set enabled):
3451         (WebInspector.DOMBreakpoint.prototype.remove):
3452         * inspector/front-end/ElementsPanel.js:
3453         (WebInspector.ElementsPanel.prototype.reset):
3454         (WebInspector.ElementsPanel.prototype.setDocument):
3455         * inspector/front-end/ElementsTreeOutline.js:
3456         (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
3457         * inspector/front-end/SourceFrame.js:
3458         (WebInspector.SourceFrame.prototype._showPopup.showObjectPopup):
3459
3460 2010-09-02  Eric Seidel  <eric@webkit.org>
3461
3462         Reviewed by Dimitri Glazkov.
3463
3464         Move updateWidget into FrameView from RenderEmbeddedObject
3465         https://bugs.webkit.org/show_bug.cgi?id=45065
3466
3467         I also made updateWidget() virtual on HTMLPlugInImageElement.
3468         I'm not yet sure that updateWidget belongs on HTMLElement since
3469         I'm not sure that HTMLMediaElement's use of the updateWidget
3470         infrastructure is correct.
3471
3472         I also got rid of the strange !m_replacementText.isEmpty() checks
3473         by making a pluginCrashedOrWasMissing() call which seems to embody
3474         the idea behind that check and hides the screwy details.
3475
3476         I noticed a couple methods on HTMLPlugInImageElement were public
3477         which did not need to be.  Fixed.
3478
3479         No functional change, thus no tests.
3480
3481         * html/HTMLEmbedElement.h:
3482         * html/HTMLObjectElement.h:
3483         * html/HTMLPlugInImageElement.cpp:
3484         (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
3485         * html/HTMLPlugInImageElement.h:
3486         (WebCore::HTMLPlugInImageElement::serviceType):
3487         (WebCore::HTMLPlugInImageElement::url):
3488         * page/FrameView.cpp:
3489         (WebCore::FrameView::updateWidget):
3490         (WebCore::FrameView::updateWidgets):
3491         * page/FrameView.h:
3492         * rendering/RenderEmbeddedObject.cpp:
3493         (WebCore::RenderEmbeddedObject::pluginCrashedOrWasMissing):
3494         (WebCore::RenderEmbeddedObject::paint):
3495         (WebCore::RenderEmbeddedObject::paintReplaced):
3496         * rendering/RenderEmbeddedObject.h:
3497
3498 2010-09-02  Eric Seidel  <eric@webkit.org>
3499
3500         Reviewed by Dimitri Glazkov.
3501
3502         Move updateWidget implementations into the DOM
3503         https://bugs.webkit.org/show_bug.cgi?id=45058
3504
3505         Unfortunately it's not yet possible to share an updateWidget
3506         implementation between <embed> and <object>.  That would amount to
3507         (positive) functional changes for <embed> which I'd will separate
3508         into a later patch.  I will also have to untangle <object>'s <param>
3509         walk from its url/serviceType calculations.
3510
3511         However after this patch it's slap-you-across-the-face obvious that
3512         RenderEmbeddedObject::updateWidget was the wrong place for this code.
3513         RenderEmbeddedObject::updateWidget still exists, but only as a
3514         pseudo-virtual-method dispatcher.  Unless we add updateWidget() to
3515         HTMLElement, we won't be able to use real virtual dispatch.
3516
3517         I may need to consider making "having a widget" a has-a relationship
3518         with some sort of WidgetContainer object which Media and Plugin can
3519         share.  Or its also possible that Media's use of the widget code here
3520         is just wrong.  Certainly now that updateWidget was moved into HTMLMediaElement
3521         it becomes obvious that HTMLMediaElement has duplicate code for updating widgets.
3522
3523         No functional changes, thus no tests.
3524
3525         * html/HTMLEmbedElement.cpp:
3526         (WebCore::HTMLEmbedElement::updateWidget):
3527         * html/HTMLEmbedElement.h:
3528         * html/HTMLMediaElement.cpp:
3529         (WebCore::HTMLMediaElement::updateWidget):
3530         * html/HTMLMediaElement.h:
3531         * html/HTMLObjectElement.cpp:
3532         (WebCore::HTMLObjectElement::updateWidget):
3533         * html/HTMLObjectElement.h:
3534         (WebCore::HTMLObjectElement::useFallbackContent):
3535         * html/HTMLPlugInImageElement.h:
3536         (WebCore::HTMLPlugInImageElement::needsWidgetUpdate):
3537         (WebCore::HTMLPlugInImageElement::setNeedsWidgetUpdate):
3538         * loader/FrameLoader.cpp:
3539         * rendering/RenderEmbeddedObject.cpp:
3540         (WebCore::RenderEmbeddedObject::updateWidget):
3541
3542 2010-09-02  Eric Seidel  <eric@webkit.org>
3543
3544         Reviewed by Dimitri Glazkov.
3545
3546         Move more code from RenderEmbeddedObject into the DOM
3547         https://bugs.webkit.org/show_bug.cgi?id=45055
3548
3549         No logic changes here, just taking the code which
3550         I ripped out of RenderEmbeddedObject::updateWidget
3551         into static methods before and moving it into
3552         the applicable DOM classes.
3553
3554         HTMLObjectElement::parametersForPlugin does too much
3555         but in order to fix it I may need to add a PluginParameters
3556         class so we can ask things about the parameters. <object>
3557         needs to get multiple bits of information out of its parameters
3558         array.  Right now it does it all in one walk.  In order to share
3559         code with HTMLEmbedElement, we need the "generate the params array"
3560         code to be separate from the "make advanced <object> specific decision
3561         from the params array".  But that will need to be in a later patch.
3562
3563         No functional changes, thus no tests.
3564
3565         * html/HTMLEmbedElement.cpp:
3566         (WebCore::HTMLEmbedElement::parametersForPlugin):
3567         * html/HTMLEmbedElement.h:
3568         * html/HTMLObjectElement.cpp:
3569         (WebCore::createClassIdToTypeMap):
3570         (WebCore::serviceTypeForClassId):
3571         (WebCore::mapDataParamToSrc):
3572         (WebCore::HTMLObjectElement::parametersForPlugin):
3573         (WebCore::HTMLObjectElement::hasFallbackContent):
3574         * html/HTMLObjectElement.h:
3575         * html/HTMLPlugInImageElement.cpp:
3576         (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
3577         (WebCore::HTMLPlugInImageElement::wouldLoadAsNetscapePlugin):
3578         (WebCore::HTMLPlugInImageElement::detach): 
3579         (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
3580         (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
3581         * html/HTMLPlugInImageElement.h:
3582         * rendering/RenderEmbeddedObject.cpp:
3583         (WebCore::updateWidgetForObjectElement):
3584         (WebCore::updateWidgetForEmbedElement):
3585         (WebCore::RenderEmbeddedObject::updateWidget):
3586
3587 2010-09-02  François Sausset  <sausset@gmail.com>
3588
3589         Reviewed by Darin Adler.
3590
3591         MathML mo element should render "hyphen-minus" as "minus sign" (Unicode glyph names).
3592         https://bugs.webkit.org/show_bug.cgi?id=43629
3593
3594         Test: mathml/presentation/mo.xhtml
3595
3596         * mathml/RenderMathMLOperator.cpp:
3597         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
3598         (WebCore::RenderMathMLOperator::updateFromElement):
3599         * mathml/RenderMathMLOperator.h:
3600         (WebCore::convertHyphenMinusToMinusSign):
3601         * platform/text/CharacterNames.h:
3602
3603 2010-09-02  Kenneth Russell  <kbr@google.com>
3604
3605         Reviewed by Darin Fisher.
3606
3607         Add red-black tree capable of holding plain old data (POD)
3608         https://bugs.webkit.org/show_bug.cgi?id=45059
3609
3610         Adding an augmentable red-black tree capable of holding Plain Old
3611         Data (POD), or classes bottoming out into only POD, and an
3612         associated PODArena. Note that the PODArena will be used by other
3613         classes to allocate temporary structures, which is why it is not
3614         just an implementation detail of the red-black tree.
3615
3616         These classes are being placed under WebCore/platform/graphics/gpu
3617         for the time being. If they are generalized to hold even data
3618         types which internally perform dynamic memory allocation, we may
3619         consider moving them to WTF in the future.
3620
3621         Unit tests for the PODRedBlackTree will be integrated separately
3622         under bug 45060.
3623
3624         * WebCore.gypi:
3625         * platform/graphics/gpu/PODArena.h: Added.
3626         (WebCore::PODArena::Allocator::~Allocator):
3627         (WebCore::PODArena::FastMallocAllocator::create):
3628         (WebCore::PODArena::FastMallocAllocator::allocate):
3629         (WebCore::PODArena::FastMallocAllocator::free):
3630         (WebCore::PODArena::FastMallocAllocator::FastMallocAllocator):
3631         (WebCore::PODArena::create):
3632         (WebCore::PODArena::allocateObject):
3633         (WebCore::PODArena::~PODArena):
3634         (WebCore::PODArena::PODArena):
3635         (WebCore::PODArena::minAlignment):
3636         (WebCore::PODArena::roundUp):
3637         (WebCore::PODArena::Chunk::Chunk):
3638         (WebCore::PODArena::Chunk::~Chunk):
3639         (WebCore::PODArena::Chunk::allocate):
3640         * platform/graphics/gpu/PODRedBlackTree.h: Added.
3641         (WebCore::PODRedBlackTree::Visitor::~Visitor):
3642         (WebCore::PODRedBlackTree::PODRedBlackTree):
3643         (WebCore::PODRedBlackTree::~PODRedBlackTree):
3644         (WebCore::PODRedBlackTree::add):
3645         (WebCore::PODRedBlackTree::remove):
3646         (WebCore::PODRedBlackTree::contains):
3647         (WebCore::PODRedBlackTree::visitInorder):
3648         (WebCore::PODRedBlackTree::size):
3649         (WebCore::PODRedBlackTree::setNeedsFullOrderingComparisons):