<rdar://problem/9296211> REGRESSION (r83514): Failing fast/repaint/trailing-floats...
[WebKit.git] / Source / WebCore / ChangeLog
1 2011-04-17  Dan Bernstein  <mitz@apple.com>
2
3         Reviewed by Joseph Pecoraro.
4
5         <rdar://problem/9296211> REGRESSION (r83514): Failing fast/repaint/trailing-floats-root-line-box-overflow.html
6         https://bugs.webkit.org/show_bug.cgi?id=58745
7
8         This is really a regression from r82611, but it went unnoticed due to a mistake in r73385,
9         which was fixed in r83514.
10
11         * rendering/RenderBlockLineLayout.cpp:
12         (WebCore::RenderBlock::layoutInlineChildren): Actually assign the bottom visual overflow to the
13         variable so named, not the top layout overflow.
14
15 2011-04-17  Geoffrey Garen  <ggaren@apple.com>
16
17         Strongly suggested, but not necessarily reviewed, by
18         Sam Weinig and Maciej Stachowiak.
19
20         Renamed DOMObject* => JSDOMWrapper*.
21
22         * bindings/js/DOMWrapperWorld.cpp:
23         (WebCore::isObservable):
24         (WebCore::DOMObjectHandleOwner::finalize):
25         * bindings/js/DOMWrapperWorld.h:
26         * bindings/js/JSArrayBufferViewHelper.h:
27         (WebCore::toJSArrayBufferView):
28         * bindings/js/JSCSSRuleCustom.cpp:
29         (WebCore::toJS):
30         * bindings/js/JSCSSValueCustom.cpp:
31         (WebCore::toJS):
32         * bindings/js/JSDOMBinding.h:
33         (WebCore::JSDOMWrapperWithGlobalPointer::globalObject):
34         (WebCore::JSDOMWrapperWithGlobalPointer::JSDOMWrapperWithGlobalPointer):
35         (WebCore::DOMConstructorObject::DOMConstructorObject):
36         (WebCore::createDOMObjectWrapper):
37         (WebCore::getDOMObjectWrapper):
38         * bindings/js/JSDOMWrapper.cpp:
39         (WebCore::JSDOMWrapper::~JSDOMWrapper):
40         * bindings/js/JSDOMWrapper.h:
41         (WebCore::JSDOMWrapper::JSDOMWrapper):
42         * bindings/js/JSDocumentCustom.cpp:
43         (WebCore::JSDocument::location):
44         (WebCore::toJS):
45         * bindings/js/JSEventCustom.cpp:
46         (WebCore::toJS):
47         * bindings/js/JSHTMLCollectionCustom.cpp:
48         (WebCore::toJS):
49         * bindings/js/JSImageDataCustom.cpp:
50         (WebCore::toJS):
51         * bindings/js/JSSVGPathSegCustom.cpp:
52         (WebCore::toJS):
53         * bindings/js/JSStyleSheetCustom.cpp:
54         (WebCore::toJS):
55         * bindings/js/ScriptWrappable.h:
56         (WebCore::ScriptWrappable::wrapper):
57         (WebCore::ScriptWrappable::setWrapper):
58         * bindings/scripts/CodeGeneratorJS.pm:
59
60 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
61
62         Reviewed by Adam Barth.
63
64         Rename PLATFORM(CA) to USE(CA)
65         https://bugs.webkit.org/show_bug.cgi?id=58742
66
67         * config.h:
68         * platform/graphics/ca/TransformationMatrixCA.cpp:
69         * platform/graphics/cg/ImageBufferDataCG.h:
70         * platform/graphics/transforms/TransformationMatrix.h:
71         * platform/mac/WebCoreSystemInterface.h:
72         * rendering/RenderLayerBacking.cpp:
73         (WebCore::RenderLayerBacking::containsPaintedContent):
74         * rendering/RenderLayerCompositor.cpp:
75         (WebCore::RenderLayerCompositor::updateBacking):
76
77 2011-04-17  Young Han Lee  <joybro@company100.net>
78
79         Reviewed by Benjamin Poulain.
80
81         [Texmap] [Qt] Improve readability by using gInVertexAttributeIndex instead of 0.
82         https://bugs.webkit.org/show_bug.cgi?id=58739
83
84         gInVertexAttributeIndex is a constant variable to point the location of
85         "InVertex" attribute of the vertex shaders.
86
87         * platform/graphics/opengl/TextureMapperGL.cpp:
88         (WebCore::TextureMapperGL::drawTexture):
89         (WebCore::TextureMapperGL::paintToTarget):
90
91 2011-04-17  Kinuko Yasuda  <kinuko@chromium.org>
92
93         Not reviewed: Fix copyright (I had submitted the file with wrong
94         copyright line).
95
96         * storage/StorageInfo.idl:
97
98 2011-04-17  Patrick Gansterer  <paroga@webkit.org>
99
100         Reviewed by Adam Barth.
101
102         Rename PLATFORM(CG) to USE(CG)
103         https://bugs.webkit.org/show_bug.cgi?id=58729
104
105         * config.h:
106         * html/HTMLCanvasElement.cpp:
107         (WebCore::HTMLCanvasElement::toDataURL):
108         * html/HTMLCanvasElement.h:
109         * html/canvas/CanvasRenderingContext2D.cpp:
110         (WebCore::CanvasRenderingContext2D::setShadow):
111         (WebCore::CanvasRenderingContext2D::drawTextInternal):
112         * html/canvas/CanvasRenderingContext2D.h:
113         * html/canvas/CanvasStyle.cpp:
114         (WebCore::CanvasStyle::applyStrokeColor):
115         (WebCore::CanvasStyle::applyFillColor):
116         * loader/cache/CachedFont.cpp:
117         * loader/cache/CachedImage.cpp:
118         (WebCore::CachedImage::createImage):
119         * platform/FloatConversion.h:
120         * platform/MIMETypeRegistry.cpp:
121         (WebCore::initializeSupportedImageMIMETypes):
122         (WebCore::initializeSupportedImageMIMETypesForEncoding):
123         * platform/graphics/BitmapImage.h:
124         * platform/graphics/Color.h:
125         * platform/graphics/DashArray.h:
126         * platform/graphics/FloatPoint.h:
127         * platform/graphics/FloatRect.h:
128         * platform/graphics/FloatSize.h:
129         * platform/graphics/FontPlatformData.h:
130         (WebCore::FontPlatformData::FontPlatformData):
131         (WebCore::FontPlatformData::hash):
132         * platform/graphics/GlyphBuffer.h:
133         (WebCore::GlyphBuffer::advanceAt):
134         (WebCore::GlyphBuffer::add):
135         (WebCore::GlyphBuffer::expandLastAdvance):
136         * platform/graphics/Gradient.h:
137         * platform/graphics/GraphicsContext.cpp:
138         (WebCore::GraphicsContext::setLegacyShadow):
139         * platform/graphics/GraphicsContext.h:
140         (WebCore::GraphicsContextState::GraphicsContextState):
141         * platform/graphics/GraphicsContext3D.h:
142         * platform/graphics/Image.cpp:
143         * platform/graphics/Image.h:
144         * platform/graphics/ImageBuffer.cpp:
145         * platform/graphics/ImageBuffer.h:
146         * platform/graphics/ImageBufferData.h:
147         * platform/graphics/ImageSource.h:
148         * platform/graphics/IntPoint.h:
149         * platform/graphics/IntRect.h:
150         * platform/graphics/IntSize.h:
151         * platform/graphics/Path.h:
152         * platform/graphics/Pattern.h:
153         * platform/graphics/SimpleFontData.h:
154         * platform/graphics/cg/ColorCG.cpp:
155         * platform/graphics/cg/FloatPointCG.cpp:
156         * platform/graphics/cg/FloatRectCG.cpp:
157         * platform/graphics/cg/FloatSizeCG.cpp:
158         * platform/graphics/cg/ImageCG.cpp:
159         * platform/graphics/cg/ImageSourceCG.cpp:
160         * platform/graphics/cg/IntPointCG.cpp:
161         * platform/graphics/cg/IntRectCG.cpp:
162         * platform/graphics/cg/IntSizeCG.cpp:
163         * platform/graphics/cg/PDFDocumentImage.cpp:
164         * platform/graphics/cg/PDFDocumentImage.h:
165         * platform/graphics/cg/PathCG.cpp:
166         * platform/graphics/cg/TransformationMatrixCG.cpp:
167         * platform/graphics/chromium/ImageLayerChromium.h:
168         * platform/graphics/chromium/LayerRendererChromium.cpp:
169         * platform/graphics/chromium/LayerRendererChromium.h:
170         * platform/graphics/chromium/PlatformCanvas.cpp:
171         (WebCore::PlatformCanvas::resize):
172         (WebCore::PlatformCanvas::AutoLocker::AutoLocker):
173         (WebCore::PlatformCanvas::Painter::Painter):
174         * platform/graphics/chromium/PlatformCanvas.h:
175         * platform/graphics/chromium/PlatformImage.cpp:
176         (WebCore::PlatformImage::updateFromImage):
177         * platform/graphics/opentype/OpenTypeUtilities.cpp:
178         * platform/graphics/transforms/AffineTransform.h:
179         * platform/graphics/transforms/TransformationMatrix.h:
180         * platform/graphics/win/DIBPixelData.h:
181         * platform/graphics/win/FontCacheWin.cpp:
182         (WebCore::FontCache::platformInit):
183         (WebCore::createGDIFont):
184         (WebCore::FontCache::createFontPlatformData):
185         * platform/graphics/win/FontPlatformDataWin.cpp:
186         (WebCore::FontPlatformData::FontPlatformData):
187         * platform/graphics/win/GraphicsContextWin.cpp:
188         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
189         * platform/graphics/win/SimpleFontDataWin.cpp:
190         * platform/image-decoders/ImageDecoder.cpp:
191         * platform/image-decoders/ImageDecoder.h:
192         * rendering/RenderObject.h:
193         * rendering/svg/RenderSVGResourceFilter.cpp:
194         (WebCore::RenderSVGResourceFilter::postApplyResource):
195         * rendering/svg/RenderSVGResourceGradient.cpp:
196         (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient):
197         (WebCore::RenderSVGResourceGradient::applyResource):
198         * rendering/svg/RenderSVGResourceGradient.h:
199         * rendering/svg/RenderSVGResourceMasker.cpp:
200         (WebCore::RenderSVGResourceMasker::drawContentIntoMaskImage):
201         * rendering/svg/RenderSVGResourcePattern.cpp:
202         (WebCore::RenderSVGResourcePattern::applyResource):
203
204 2011-04-16  Adam Barth  <abarth@webkit.org>
205
206         Reviewed by Sam Weinig.
207
208         about:blank documents in new tabs can XHR anywhere
209         https://bugs.webkit.org/show_bug.cgi?id=58712
210
211         Empty security origins have supposed to be low-privilege, we should
212         mark them as having a unique origin.
213
214         * manual-tests/about-blank-xhr.html: Added.
215         * page/SecurityOrigin.cpp:
216         (WebCore::SecurityOrigin::SecurityOrigin):
217         * page/SecurityOrigin.h:
218
219 2011-04-16  Dan Bernstein  <mitz@apple.com>
220
221         Reviewed by Simon Fraser.
222
223         <rdar://problem/9190108> Crash when hiding a float
224
225         Test: fast/block/float/overhanging-tall-block.html
226
227         * rendering/RenderBlock.cpp:
228         (WebCore::RenderBlock::addOverhangingFloats): Moved the call to childLogicalTop() out of the loop.
229         Capped the logical bottom so that we get the correct maximum.
230         * rendering/RenderBlock.h: Decleared appendFloatingObjectToLastLine().
231         * rendering/RenderBlockLineLayout.cpp:
232         (WebCore::RenderBlock::appendFloatingObjectToLastLine): Added. Ensures correct bookkeeping by
233         extending the float if needed so that it touches the line.
234         (WebCore::RenderBlock::layoutInlineChildren): Changed to call appendFloatingObjectToLastLine().
235         (WebCore::RenderBlock::checkFloatsInCleanLine): Capped the float height so the we mark the right
236         range of lines as dirty.
237         * rendering/RootInlineBox.h:
238         (WebCore::RootInlineBox::appendFloat): Replaced the floats() accessor with this function, which
239         allows the creation of the vector to be combined with appending the first float.
240
241 2011-04-16  Sam Weinig  <sam@webkit.org>
242
243         Reviewed by Simon Fraser.
244
245         Pages in the PageCache don't have the correct visited link coloring after being restored
246         https://bugs.webkit.org/show_bug.cgi?id=58721
247
248         * WebCore.exp.in:
249         Add export of markPagesForVistedLinkStyleRecalc for use by WebKit2.
250
251         * history/CachedPage.cpp:
252         (WebCore::CachedPage::CachedPage):
253         (WebCore::CachedPage::restore):
254         (WebCore::CachedPage::clear):
255         * history/CachedPage.h:
256         (WebCore::CachedPage::markForVistedLinkStyleRecalc):
257         Add bit, set by calling markForVistedLinkStyleRecalc, which forces a visited link
258         style recalc when being restored.
259
260         * history/PageCache.h:
261         * history/PageCache.cpp:
262         (WebCore::PageCache::markPagesForVistedLinkStyleRecalc):
263         Mark all pages in the page cache as requiring visited link style recalc.
264
265         * page/PageGroup.cpp:
266         (WebCore::PageGroup::addVisitedLink):
267         (WebCore::PageGroup::removeVisitedLinks):
268         (WebCore::PageGroup::removeAllVisitedLinks):
269         Set dirty bit when changing any visited link information.
270         
271
272 2011-04-16  Leo Yang  <leoyang.webkit@gmail.com>
273
274         Reviewed by Nikolas Zimmermann.
275
276         ASSERT failure when svg <use> element changes href
277         https://bugs.webkit.org/show_bug.cgi?id=58726
278
279         m_resourceId was not empty after the pending resource
280         becomes available. This will trigger the assertion at
281         line 509 of SVGUseElement.cpp when the <use> element's
282         href becomes empty or invalid.
283
284         This patch makes m_resourceId be empty after the pending
285         resource becomes available to avoid assertion failure.
286
287         Test: svg/custom/use-crash-when-href-change.svg
288
289         * svg/SVGUseElement.cpp:
290         (WebCore::SVGUseElement::buildPendingResource):
291
292 2011-04-16  Patrick Gansterer  <paroga@webkit.org>
293
294         Reviewed by Eric Seidel.
295
296         Rename PLATFORM(CAIRO) to USE(CAIRO)
297         https://bugs.webkit.org/show_bug.cgi?id=55192
298
299         * CMakeListsEfl.txt:
300         * config.h:
301         * platform/MIMETypeRegistry.cpp:
302         (WebCore::initializeSupportedImageMIMETypesForEncoding):
303         * platform/graphics/ContextShadow.h:
304         * platform/graphics/DashArray.h:
305         * platform/graphics/FloatRect.h:
306         * platform/graphics/FontPlatformData.h:
307         (WebCore::FontPlatformData::FontPlatformData):
308         (WebCore::FontPlatformData::hash):
309         (WebCore::FontPlatformData::isHashTableDeletedValue):
310         * platform/graphics/GlyphBuffer.h:
311         (WebCore::GlyphBuffer::glyphAt):
312         (WebCore::GlyphBuffer::add):
313         * platform/graphics/Gradient.cpp:
314         * platform/graphics/Gradient.h:
315         * platform/graphics/GraphicsContext.cpp:
316         * platform/graphics/GraphicsContext.h:
317         (WebCore::GraphicsContextState::GraphicsContextState):
318         * platform/graphics/GraphicsContext3D.h:
319         * platform/graphics/ImageBufferData.h:
320         * platform/graphics/ImageSource.h:
321         * platform/graphics/Path.h:
322         * platform/graphics/Pattern.h:
323         * platform/graphics/SimpleFontData.h:
324         * platform/graphics/cairo/DrawErrorUnderline.h:
325         * platform/graphics/cairo/GraphicsContextCairo.cpp:
326         * platform/graphics/cairo/ImageCairo.cpp:
327         * platform/graphics/gstreamer/ImageGStreamer.h:
328         * platform/graphics/transforms/AffineTransform.h:
329         * platform/graphics/transforms/TransformationMatrix.h:
330         * platform/graphics/win/FontCacheWin.cpp:
331         (WebCore::createGDIFont):
332         (WebCore::FontCache::createFontPlatformData):
333         * platform/graphics/win/FontPlatformDataWin.cpp:
334         (WebCore::FontPlatformData::FontPlatformData):
335         * platform/graphics/win/GraphicsContextWin.cpp:
336         * plugins/win/PluginViewWin.cpp:
337         (WebCore::PluginView::paintWindowedPluginIntoContext):
338         * rendering/RenderObject.h:
339
340 2011-04-16  Patrick Gansterer  <paroga@webkit.org>
341
342         Unreviewed WinCE build fix for r84033.
343
344         * platform/win/LocalizedStringsWin.cpp:
345         (WebCore::localizedString):
346
347 2011-04-16  Abhishek Arya  <inferno@chromium.org>
348
349         Reviewed by Nikolas Zimmermann.
350
351         Only allow inline child for SVG text since we cannot
352         handle block childs.
353         https://bugs.webkit.org/show_bug.cgi?id=58678
354
355         Test: svg/text/text-block-child-crash.xhtml
356
357         * rendering/svg/RenderSVGText.cpp:
358         (WebCore::RenderSVGText::isChildAllowed):
359         * rendering/svg/RenderSVGText.h:
360
361 2011-04-15  Ilya Tikhonovsky  <loislo@chromium.org>
362
363         Reviewed by Pavel Feldman.
364
365         Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
366         https://bugs.webkit.org/show_bug.cgi?id=57833
367
368         * inspector/Inspector.json:
369         * inspector/InspectorDatabaseAgent.cpp:
370         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
371         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
372         (WebCore::InspectorDatabaseAgent::setFrontend):
373         (WebCore::InspectorDatabaseAgent::clearFrontend):
374         (WebCore::InspectorDatabaseAgent::enable):
375         (WebCore::InspectorDatabaseAgent::disable):
376         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
377         (WebCore::InspectorDatabaseAgent::executeSQL):
378         * inspector/InspectorDatabaseAgent.h:
379         * inspector/front-end/inspector.js:
380
381 2011-04-15  Adam Barth  <abarth@webkit.org>
382
383         Reviewed by Eric Seidel.
384
385         CSP media-src is missing
386         https://bugs.webkit.org/show_bug.cgi?id=58642
387
388         Yay HTMLMediaElement for having the exact hook we need!
389
390         Tests: http/tests/security/contentSecurityPolicy/media-src-allowed.html
391                http/tests/security/contentSecurityPolicy/media-src-blocked.html
392
393         * html/HTMLMediaElement.cpp:
394         (WebCore::HTMLMediaElement::isSafeToLoadURL):
395             - Although it's tempting to add this branch to the previous
396               if-block, that results in the wrong error message being logged to
397               the console (covered by the "blocked" test).
398         * page/ContentSecurityPolicy.cpp:
399         (WebCore::ContentSecurityPolicy::allowMediaFromSource):
400         (WebCore::ContentSecurityPolicy::addDirective):
401         * page/ContentSecurityPolicy.h:
402             - These changes are routine.
403
404 2011-04-15  Adam Barth  <abarth@webkit.org>
405
406         Reviewed by Eric Seidel.
407
408         CSP should block string arguments to setTimeout and setInterval unless options eval-script
409         https://bugs.webkit.org/show_bug.cgi?id=58610
410
411         It's somewhat sadness that the JSC and V8 code for setTimeout and
412         setInterval are so different.  I struggled for a while with how to
413         handle the worker case, but I decided to punt on it for now.
414
415         Tests: http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-allowed.html
416                http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked.html
417                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-allowed.html
418                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked.html
419
420         * bindings/js/JSDOMWindowCustom.cpp:
421         (WebCore::JSDOMWindow::setTimeout):
422         (WebCore::JSDOMWindow::setInterval):
423         * bindings/js/JSWorkerContextCustom.cpp:
424         (WebCore::JSWorkerContext::setTimeout):
425         (WebCore::JSWorkerContext::setInterval):
426         * bindings/js/ScheduledAction.cpp:
427         (WebCore::ScheduledAction::create):
428         * bindings/js/ScheduledAction.h:
429         * bindings/v8/custom/V8DOMWindowCustom.cpp:
430         (WebCore::WindowSetTimeoutImpl):
431         * page/ContentSecurityPolicy.cpp:
432         (WebCore::ContentSecurityPolicy::allowEval):
433         * page/ContentSecurityPolicy.h:
434
435 2011-04-15  Shishir Agrawal  <shishir@chromium.org>
436
437         Reviewed by James Robinson.
438
439         Add a flag to guard Page Visibility API changes.
440         https://bugs.webkit.org/show_bug.cgi?id=58464
441
442         * Configurations/FeatureDefines.xcconfig:
443
444 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
445
446         Reviewed by Martin Robinson.
447
448         Make plugins compile during WebKit GTK Windows build.
449         Ifdef properly relevant parts so that the PluginViewGtk compiles on Windows.
450         https://bugs.webkit.org/show_bug.cgi?id=58580
451
452         * plugins/PluginView.cpp:
453         (WebCore::PluginView::stop):
454         * plugins/PluginView.h:
455         * plugins/gtk/PluginViewGtk.cpp:
456         (WebCore::PluginView::platformGetValue):
457         (WebCore::PluginView::platformStart):
458
459 2011-04-15  MORITA Hajime  <morrita@google.com>
460
461         Reviewed by Simon Fraser.
462
463         Calls to WebCore::Document::mayCauseFlashOfUnstyledContent make frequently-run drawing methods slower
464         https://bugs.webkit.org/show_bug.cgi?id=58512
465         
466         Manually rolled out r72367 at which mayCauseFlashOfUnstyledContent() was introduced.
467         This change keeps an small refactoring on
468         FrameView::shouldUpdate(), which doesn't affect on the behavior.
469
470         * dom/Document.cpp:
471         * dom/Document.h:
472         * page/FrameView.cpp:
473         (WebCore::FrameView::invalidateRect):
474         (WebCore::FrameView::shouldUpdate):
475         * rendering/RenderBlock.cpp:
476         (WebCore::RenderBlock::paintContents):
477         * rendering/RenderLayer.cpp:
478         (WebCore::RenderLayer::paintLayer):
479
480 2011-04-15  Chris Rogers  <crogers@google.com>
481
482         Reviewed by Kenneth Russell.
483
484         Reduce default kernel size of SincResampler to favor better speed over quality
485         https://bugs.webkit.org/show_bug.cgi?id=58710
486
487         No new tests since audio API is not yet implemented.
488
489         * platform/audio/SincResampler.h:
490
491 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
492
493         Reviewed by Martin Robinson.
494
495         Expand the ntohs, ntohl, htons and htonl defines for OS(WINDOWS)
496         These have to be defined for Windows in general, since win32 API
497         does not provide them.
498         https://bugs.webkit.org/show_bug.cgi?id=58582
499
500         * platform/graphics/WOFFFileFormat.cpp:
501
502 2011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
503
504         Reviewed by Adam Barth.
505
506         Show a console message when X-Frame-Options blocks a load
507         https://bugs.webkit.org/show_bug.cgi?id=39087
508
509         Added console message when X-Frame-Options headers block resource loading
510
511         * loader/MainResourceLoader.cpp:
512         (WebCore::MainResourceLoader::didReceiveResponse):
513
514 2011-04-15  Fridrich Strba  <fridrich.strba@bluewin.ch>
515
516         Reviewed by Martin Robinson.
517
518         Evaluate PLATFORM(GTK) before the all-encompassing OS(WINDOWS)
519         test. This allows Windows build of WebKit GTK to chose the right
520         path.
521         https://bugs.webkit.org/show_bug.cgi?id=58576
522
523         * platform/FileSystem.h:
524
525 2011-04-08  Luiz Agostini  <luiz.agostini@openbossa.org>
526
527         Reviewed by Kenneth Rohde Christiansen.
528
529         [Qt] QWebPage MIME type handling inconsistency with other web browsers
530         https://bugs.webkit.org/show_bug.cgi?id=46968
531
532         Implementing mime type sniffing based on
533         http://tools.ietf.org/html/draft-abarth-mime-sniff-06.
534
535         * WebCore.pro:
536         * platform/network/MIMESniffing.cpp: Added.
537         (MagicNumbers::dataSizeNeededForImageSniffing):
538         (MagicNumbers::maskedCompare):
539         (MagicNumbers::checkSpaceOrBracket):
540         (MagicNumbers::compare):
541         (MagicNumbers::findMIMEType):
542         (MagicNumbers::findSimpleMIMEType):
543         (MagicNumbers::textOrBinaryTypeSniffingProcedure):
544         (MagicNumbers::unknownTypeSniffingProcedure):
545         (MagicNumbers::imageTypeSniffingProcedure):
546         (MagicNumbers::checkText):
547         (MagicNumbers::checkRDF):
548         (MagicNumbers::skipTag):
549         (MagicNumbers::feedTypeSniffingProcedure):
550         (MIMESniffer::MIMESniffer):
551         * platform/network/MIMESniffing.h: Added.
552         (MIMESniffer::dataSize):
553         (MIMESniffer::sniff):
554         (MIMESniffer::isValid):
555         * platform/network/NetworkingContext.h:
556         * platform/network/qt/QNetworkReplyHandler.cpp:
557         (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper):
558         (WebCore::QNetworkReplyWrapper::release):
559         (WebCore::QNetworkReplyWrapper::receiveMetaData):
560         (WebCore::QNetworkReplyWrapper::receiveSniffedMIMEType):
561         (WebCore::QNetworkReplyWrapper::emitMetaDataChanged):
562         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
563         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
564         (WebCore::QNetworkReplyHandler::start):
565         * platform/network/qt/QNetworkReplyHandler.h:
566         (WebCore::QNetworkReplyWrapper::advertisedMIMEType):
567         (WebCore::QNetworkReplyWrapper::mimeType):
568         * platform/network/qt/QtMIMETypeSniffer.cpp: Added.
569         (QtMIMETypeSniffer::QtMIMETypeSniffer):
570         (QtMIMETypeSniffer::sniff):
571         (QtMIMETypeSniffer::trySniffing):
572         * platform/network/qt/QtMIMETypeSniffer.h: Added.
573         (QtMIMETypeSniffer::mimeType):
574         (QtMIMETypeSniffer::isFinished):
575
576 2011-04-15  Emil A Eklund  <eae@chromium.org>
577
578         Reviewed by Dimitri Glazkov.
579
580         input field with focus makes appendChild operation ~42x slower
581         https://bugs.webkit.org/show_bug.cgi?id=57059
582
583         Change ContainerNode::cloneChildNodes to only disable the
584         deleteButtonController if the container itself (or any of its children)
585         is being edited. Thus avoiding a reflow in cases where it's not.
586
587         Test: perf/clone-with-focus.html
588
589         * dom/ContainerNode.cpp:
590         (WebCore::ContainerNode::cloneChildNodes):
591
592 2011-04-15  Kinuko Yasuda  <kinuko@chromium.org>
593
594         Reviewed by David Levin.
595
596         Expose unified Quota API if QUOTA build flag is enabled
597         https://bugs.webkit.org/show_bug.cgi?id=58648
598
599         Test: storage/storageinfo-query-usage.html
600
601         * CMakeLists.txt: Added new file entries.
602         * DerivedSources.cpp: Added new file entries.
603         * DerivedSources.make: Added new file entries.
604         * GNUmakefile.am: Added new file entries.
605         * WebCore.gypi: Added new file entries.
606         * WebCore.vcproj/WebCore.vcproj: Added new file entries.
607         * WebCore.xcodeproj/project.pbxproj: Added new file entries.
608         * page/DOMWindow.cpp:
609         (WebCore::DOMWindow::webkitStorageInfo): Added.
610         * page/DOMWindow.h:
611         * page/DOMWindow.idl:
612         * storage/StorageInfo.h: Added storage type enum.
613         * storage/StorageInfo.idl: Added.
614         * storage/StorageInfoErrorCallback.idl: Added.
615         * storage/StorageInfoUsageCallback.idl: Added.
616
617 2011-04-15  Oliver Hunt  <oliver@apple.com>
618
619         GC allocate Structure
620         https://bugs.webkit.org/show_bug.cgi?id=58483
621
622         Rolling r83894 r83827 r83810 r83809 r83808 back in with
623         a workaround for the gcc bug seen by the gtk bots
624
625         * WebCore.exp.in:
626         * bindings/js/JSAudioConstructor.h:
627         (WebCore::JSAudioConstructor::createStructure):
628         * bindings/js/JSDOMBinding.cpp:
629         (WebCore::cacheDOMStructure):
630         * bindings/js/JSDOMBinding.h:
631         (WebCore::DOMObjectWithGlobalPointer::createStructure):
632         (WebCore::DOMObjectWithGlobalPointer::DOMObjectWithGlobalPointer):
633         (WebCore::DOMConstructorObject::createStructure):
634         (WebCore::DOMConstructorObject::DOMConstructorObject):
635         (WebCore::DOMConstructorWithDocument::DOMConstructorWithDocument):
636         * bindings/js/JSDOMGlobalObject.cpp:
637         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
638         (WebCore::JSDOMGlobalObject::markChildren):
639         * bindings/js/JSDOMGlobalObject.h:
640         (WebCore::JSDOMGlobalObject::createStructure):
641         * bindings/js/JSDOMWindowBase.cpp:
642         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
643         * bindings/js/JSDOMWindowBase.h:
644         (WebCore::JSDOMWindowBase::createStructure):
645         * bindings/js/JSDOMWindowShell.cpp:
646         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
647         (WebCore::JSDOMWindowShell::setWindow):
648         * bindings/js/JSDOMWindowShell.h:
649         (WebCore::JSDOMWindowShell::createStructure):
650         * bindings/js/JSDOMWrapper.h:
651         (WebCore::DOMObject::DOMObject):
652         * bindings/js/JSEventListener.cpp:
653         (WebCore::JSEventListener::JSEventListener):
654         * bindings/js/JSImageConstructor.h:
655         (WebCore::JSImageConstructor::createStructure):
656         * bindings/js/JSImageDataCustom.cpp:
657         (WebCore::toJS):
658         * bindings/js/JSOptionConstructor.h:
659         (WebCore::JSOptionConstructor::createStructure):
660         * bindings/js/JSWorkerContextBase.cpp:
661         (WebCore::JSWorkerContextBase::JSWorkerContextBase):
662         * bindings/js/JSWorkerContextBase.h:
663         (WebCore::JSWorkerContextBase::createStructure):
664         * bindings/js/ScriptCachedFrameData.h:
665         * bindings/js/SerializedScriptValue.h:
666         * bindings/js/WorkerScriptController.cpp:
667         (WebCore::WorkerScriptController::~WorkerScriptController):
668         (WebCore::WorkerScriptController::initScript):
669         * bindings/scripts/CodeGeneratorJS.pm:
670         * bridge/c/CRuntimeObject.h:
671         (JSC::Bindings::CRuntimeObject::createStructure):
672         * bridge/c/c_instance.cpp:
673         (JSC::Bindings::CRuntimeMethod::createStructure):
674         * bridge/jni/jsc/JavaInstanceJSC.cpp:
675         (JavaRuntimeMethod::createStructure):
676         * bridge/jni/jsc/JavaRuntimeObject.h:
677         (JSC::Bindings::JavaRuntimeObject::createStructure):
678         * bridge/objc/ObjCRuntimeObject.h:
679         (JSC::Bindings::ObjCRuntimeObject::createStructure):
680         * bridge/objc/objc_instance.mm:
681         (ObjCRuntimeMethod::createStructure):
682         * bridge/objc/objc_runtime.h:
683         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
684         * bridge/qt/qt_instance.cpp:
685         (JSC::Bindings::QtRuntimeObject::createStructure):
686         * bridge/qt/qt_pixmapruntime.cpp:
687         (JSC::Bindings::QtPixmapRuntimeObject::createStructure):
688         * bridge/qt/qt_runtime.h:
689         (JSC::Bindings::QtRuntimeMethod::createStructure):
690         * bridge/runtime_array.cpp:
691         (JSC::RuntimeArray::RuntimeArray):
692         * bridge/runtime_array.h:
693         (JSC::RuntimeArray::createStructure):
694         * bridge/runtime_method.cpp:
695         (JSC::RuntimeMethod::RuntimeMethod):
696         * bridge/runtime_method.h:
697         (JSC::RuntimeMethod::createStructure):
698         * bridge/runtime_object.cpp:
699         (JSC::Bindings::RuntimeObject::RuntimeObject):
700         * bridge/runtime_object.h:
701         (JSC::Bindings::RuntimeObject::createStructure):
702         * history/HistoryItem.h:
703
704 2011-04-15  Jessie Berlin  <jberlin@apple.com>
705
706         Reviewed by Brian Weinstein.
707
708         Hang underneath ApplicationCacheStorage::writeDataToUniqueFileInDirectory when loading
709         http://www.webkit.org/demos/calendar.
710         https://bugs.webkit.org/show_bug.cgi?id=58698
711
712         * platform/win/FileSystemWin.cpp:
713         (WebCore::openFile):
714         Add breaks to the case statement.
715         (WebCore::directoryName):
716         Remove any trailing slash in directoryName. After closer inspection of all callers, it
717         appears the that callers do not need the trailing slash, and those that use the length do
718         so only to change the direction of the slashes throughout the length of the path.
719
720 2011-04-15  Roland Steiner  <rolandsteiner@chromium.org>
721
722         Reviewed by Dimitri Glazkov.
723
724         Bug 52963 - Enable O(1) access to root from any node in shadow DOM subtree
725         https://bugs.webkit.org/show_bug.cgi?id=52963
726
727         .) Change base class of ShadowRoot from DocumentFragment to TreeScope.
728         .) Re-enable tree scope handling in Node (had ASSERT_NOT_REACHED, etc.).
729         .) Merged setTreeScope() with setTreeScopeRecursively()
730         .) Call setTreeScopeRecursively in DOM manipulation functions where applicable.
731
732         No new tests. (refactoring)
733
734         * dom/ContainerNode.cpp:
735         (WebCore::ContainerNode::takeAllChildrenFrom):
736         (WebCore::ContainerNode::removeBetween):
737         (WebCore::ContainerNode::removeChildren):
738         (WebCore::ContainerNode::parserAddChild):
739         * dom/Document.cpp:
740         (WebCore::Document::Document):
741         (WebCore::Document::~Document):
742         (WebCore::Document::setDocType):
743         * dom/Element.h:
744         * dom/Node.cpp:
745         (WebCore::Node::treeScope):
746         (WebCore::Node::setTreeScopeRecursively):
747         * dom/Node.h:
748         (WebCore::Node::document):
749         * dom/ShadowRoot.cpp:
750         (WebCore::ShadowRoot::ShadowRoot):
751         (WebCore::ShadowRoot::~ShadowRoot):
752         (WebCore::ShadowRoot::nodeType):
753         (WebCore::ShadowRoot::cloneNode):
754         (WebCore::ShadowRoot::childTypeAllowed):
755         * dom/ShadowRoot.h:
756         (WebCore::toShadowRoot):
757         * dom/TreeScope.cpp:
758         (WebCore::TreeScope::TreeScope):
759         (WebCore::TreeScope::setParentTreeScope):
760         * dom/TreeScope.h:
761         * rendering/RenderSlider.cpp:
762
763 2011-04-15  Geoffrey Garen  <ggaren@apple.com>
764
765         Reviewed by Oliver Hunt.
766
767         DOM object handles are never removed from cache
768         https://bugs.webkit.org/show_bug.cgi?id=58707
769
770         We were trying to remove hash table items by value instead of by key.
771
772         * bindings/js/DOMWrapperWorld.cpp:
773         (WebCore::JSNodeHandleOwner::finalize): Changed to work more like
774         DOMObjectHandleOwner::finalize because I'm going to merge them.
775
776         (WebCore::DOMObjectHandleOwner::finalize): Remove hash table items
777         by key, not value. (Oops!) Use a helper function to make sure we get
778         this right.
779
780         * bindings/js/JSDOMBinding.cpp:
781         (WebCore::cacheDOMObjectWrapper): Store the hash table key as our weak
782         handle context, so we can use it at destruction time.
783
784         * bindings/js/JSDOMBinding.h: Removed unnecessary include.
785
786         * bindings/js/JSNodeCustom.h:
787         (WebCore::cacheDOMNodeWrapper): Store the hash table key as our weak
788         handle context, so we can use it at destruction time.
789
790         * bindings/js/ScriptWrappable.h:
791         (WebCore::ScriptWrappable::setWrapper): Forward context parameter, to
792         support the above.
793
794 2011-04-15  Kenneth Russell  <kbr@google.com>
795
796         Unreviewed. Chromium Linux Release build fix due to unused variables.
797
798         * platform/audio/mkl/FFTFrameMKL.cpp:
799         (WebCore::FFTFrame::doFFT):
800         (WebCore::FFTFrame::doInverseFFT):
801         (WebCore::FFTFrame::cleanup):
802
803 2011-04-15  Brent Fulgham  <bfulgham@webkit.org>
804
805         Unreviewed build change after r83945.
806
807         New 'PlatformPathCairo.cpp' was not added to the WinCairo build.
808
809         * WebCore.vcproj/WebCore.vcproj: Add missing file to WinCairo
810           build.  Exclude for standard Apple build.
811
812 2011-04-15  Anders Carlsson  <andersca@apple.com>
813
814         Reviewed by Dan Bernstein.
815
816         Fade the find page overlay
817         https://bugs.webkit.org/show_bug.cgi?id=58697
818
819         Add a symbol that WebKit2 needs.
820
821         * WebCore.exp.in:
822
823 2011-04-15  MORITA Hajime  <morrita@google.com>
824
825         Reviewed by Dimitri Glazkov.
826
827         RenderDetailsMarker should belong to shadow element.
828         https://bugs.webkit.org/show_bug.cgi?id=58591
829
830         - Introduced DetailsMarkerControl element, which is a shadow element of <summary>, creates RenderDetailsMarker.
831         - Removed custom layout code from RenderDetails, RenderDetailsMarker, which is now done by usual CSS layout.
832           Note that marker size is given via style for -webkit-details-marker pseudo class.
833         - Converted default summary implementation from pure-renderer style to shadow of HTMLDetailsElement.
834           Now RenderDetails knows nothing about default summary.
835         - Moved event handling code from HTMLDetailsElement to HTMLSummaryElement because now the marker is always child of 
836           <summary>, and the clickable area is now <summary> itself.
837
838         - Note that the rendering result is changed due to the conversion from custom layout code to usual CSS styling.
839
840         * Android.mk:
841         * CMakeLists.txt:
842         * GNUmakefile.list.am:
843         * WebCore.gypi:
844         * WebCore.pro:
845         * WebCore.vcproj/WebCore.vcproj:
846         * WebCore.xcodeproj/project.pbxproj:
847         * css/html.css:
848         (summary::-webkit-details-marker):
849         * dom/Element.cpp:
850         (WebCore::Element::attach):
851         * dom/Node.cpp:
852         (WebCore::shouldCreateRendererFor):
853         * dom/Node.h:
854         (WebCore::Node::canHaveLightChildRendererWithShadow):
855         * html/HTMLDetailsElement.cpp:
856         (WebCore::HTMLDetailsElement::findSummaryFor):
857         (WebCore::HTMLDetailsElement::findMainSummary):
858         (WebCore::HTMLDetailsElement::refreshMainSummary):
859         (WebCore::HTMLDetailsElement::createShadowSubtree):
860         (WebCore::HTMLDetailsElement::childrenChanged):
861         (WebCore::HTMLDetailsElement::finishParsingChildren):
862         (WebCore::HTMLDetailsElement::toggleOpen):
863         * html/HTMLDetailsElement.h:
864         (WebCore::HTMLDetailsElement::canHaveLightChildRendererWithShadow):
865         * html/HTMLSummaryElement.cpp:
866         (WebCore::HTMLSummaryElement::create):
867         (WebCore::HTMLSummaryElement::createShadowSubtree):
868         (WebCore::HTMLSummaryElement::detailsElement):
869         (WebCore::HTMLSummaryElement::isMainSummary):
870         (WebCore::HTMLSummaryElement::defaultEventHandler):
871         * html/HTMLSummaryElement.h:
872         (WebCore::HTMLSummaryElement::canHaveLightChildRendererWithShadow):
873         * html/shadow/DetailsMarkerControl.cpp: Added.
874         (WebCore::DetailsMarkerControl::DetailsMarkerControl):
875         (WebCore::DetailsMarkerControl::createRenderer):
876         (WebCore::DetailsMarkerControl::rendererIsNeeded):
877         (WebCore::DetailsMarkerControl::shadowPseudoId):
878         (WebCore::DetailsMarkerControl::summaryElement):
879         * html/shadow/DetailsMarkerControl.h: Added.
880         (WebCore::DetailsMarkerControl::create):
881         * rendering/RenderDetails.cpp:
882         (WebCore::RenderDetails::RenderDetails):
883         (WebCore::RenderDetails::styleDidChange):
884         (WebCore::RenderDetails::moveSummaryToContents):
885         (WebCore::RenderDetails::checkMainSummary):
886         (WebCore::RenderDetails::layout):
887         * rendering/RenderDetails.h:
888         * rendering/RenderDetailsMarker.cpp:
889         (WebCore::RenderDetailsMarker::RenderDetailsMarker):
890         (WebCore::RenderDetailsMarker::isOpen):
891         (WebCore::RenderDetailsMarker::getPath):
892         (WebCore::RenderDetailsMarker::paint):
893         (WebCore::RenderDetailsMarker::details):
894         * rendering/RenderDetailsMarker.h:
895
896 2011-04-15  Sam Weinig  <sam@webkit.org>
897
898         Reviewed by Adam Roben.
899
900         Implement localize strings for windows WebKit2
901         https://bugs.webkit.org/show_bug.cgi?id=58688
902
903         * platform/win/LocalizedStringsWin.cpp:
904         (WebCore::createWebKitBundle):
905         (WebCore::webKitBundle):
906         (WebCore::localizedString):
907         Add implementation of localizedString for Windows.
908
909 2011-04-15  Geoffrey Garen  <ggaren@apple.com>
910
911         Reviewed by Oliver Hunt.
912
913         Some mechanical DOM wrapper cleanup
914         https://bugs.webkit.org/show_bug.cgi?id=58689
915
916         * WebCore.exp.in: Export!
917
918         * bindings/js/DOMWrapperWorld.cpp:
919         (WebCore::isReachableFromDOM): Inverted the inDocument test to make the
920         relationship of the special cases to the normal case clearer.
921
922         * bindings/js/JSArrayBufferViewHelper.h:
923         (WebCore::toJSArrayBufferView):
924         * bindings/js/JSCSSRuleCustom.cpp:
925         (WebCore::toJS):
926         * bindings/js/JSCSSValueCustom.cpp:
927         (WebCore::toJS):
928         * bindings/js/JSDOMBinding.cpp:
929         (WebCore::getCachedDOMObjectWrapper):
930         (WebCore::cacheDOMObjectWrapper):
931         * bindings/js/JSDOMBinding.h:
932         (WebCore::createDOMObjectWrapper):
933         (WebCore::getDOMObjectWrapper):
934         (WebCore::createDOMNodeWrapper):
935         (WebCore::getDOMNodeWrapper): Changed DOM wrapper functions to operate
936         in terms of DOMWrapperWorlds instead of ExecStates. This is clearer,
937         and ever-so-slightly faster.
938         
939         Removed hasCachedXXX functions, now that they're unused.
940
941         * bindings/js/JSDOMWindowCustom.cpp:
942         (WebCore::JSDOMWindow::history):
943         (WebCore::JSDOMWindow::location):
944         * bindings/js/JSDocumentCustom.cpp:
945         (WebCore::JSDocument::location):
946         (WebCore::toJS):
947         * bindings/js/JSElementCustom.cpp:
948         (WebCore::toJSNewlyCreated):
949         * bindings/js/JSEventCustom.cpp:
950         (WebCore::toJS):
951         * bindings/js/JSHTMLCollectionCustom.cpp:
952         (WebCore::toJS):
953         * bindings/js/JSImageDataCustom.cpp:
954         (WebCore::toJS):
955         * bindings/js/JSNodeCustom.cpp:
956         (WebCore::createWrapperInline):
957         * bindings/js/JSNodeCustom.h:
958         (WebCore::getCachedDOMNodeWrapper):
959         (WebCore::cacheDOMNodeWrapper):
960         (WebCore::toJS):
961         * bindings/js/JSSVGPathSegCustom.cpp:
962         (WebCore::toJS):
963         * bindings/js/JSStyleSheetCustom.cpp:
964         (WebCore::toJS): Updated for changes above.
965
966         * xml/XMLHttpRequest.cpp:
967         (WebCore::XMLHttpRequest::dropProtection): Removed use of hasCachedDOMObjectWrapper
968         because XHR is almost always created and used by JavaScript, so it's
969         simpler to just always report extra cost.
970
971 2011-04-15  Andreas Kling  <kling@webkit.org>
972
973         Rolling out accidental part of r84010.
974
975         * platform/qt/RenderThemeQt.cpp:
976         (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
977         (WebCore::RenderThemeQt::setButtonPadding):
978
979 2011-04-15  Oliver Hunt  <oliver@apple.com>
980
981         Forgot windows build fix.
982
983         * bindings/js/JSNodeFilterCondition.cpp:
984         (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots):
985
986 2011-04-15  Joseph Pecoraro  <joepeck@webkit.org>
987
988         Reviewed by Yury Semikhatsky.
989
990         Frontend Part of Web Inspector: Remote Web Inspector - Cross Platform InspectorServer
991         https://bugs.webkit.org/show_bug.cgi?id=51364
992
993         The front end should not use a transparent background when
994         loaded as a web page (remote debugging) but should when loaded
995         regularly in a custom window. This adds a "remote" style class
996         onto the document body when the page is loaded remotely.
997
998         * inspector/front-end/inspector.css:
999         (body.detached.platform-mac-snowleopard:not(.remote) #toolbar): respect the "remote" class.
1000         * inspector/front-end/inspector.js: add a "remote" class on the body when loaded remotely.
1001
1002 2011-04-15  Joseph Pecoraro  <joepeck@webkit.org>
1003
1004         Reviewed by David Kilzer.
1005
1006         JSLock ASSERT seen often when using the inspector for long
1007         periods of time. We should take the JSLock whenever we
1008         might allocate memory in the JavaScript Heap.
1009
1010         JSC InjectedScriptHost::nodeAsScriptValue should take JSLock before possible JavaScript Allocations
1011         https://bugs.webkit.org/show_bug.cgi?id=58674
1012
1013         * bindings/js/JSInjectedScriptHostCustom.cpp:
1014         (WebCore::InjectedScriptHost::nodeAsScriptValue): take the JSLock.
1015
1016 2011-04-14  Oliver Hunt  <oliver@apple.com>
1017
1018         Reviewed by Geoffrey Garen.
1019
1020         Make JSNodeFilterCondition handle its lifetime correctly
1021         https://bugs.webkit.org/show_bug.cgi?id=58622
1022
1023         Switch over to a WeakHandle and external roots to keep the
1024         condition value live.
1025
1026         * bindings/js/JSNodeFilterCondition.cpp:
1027         (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
1028         (WebCore::JSNodeFilterCondition::markAggregate):
1029         (WebCore::JSNodeFilterCondition::acceptNode):
1030         (WebCore::JSNodeFilterCondition::WeakOwner::isReachableFromOpaqueRoots):
1031         * bindings/js/JSNodeFilterCondition.h:
1032         (WebCore::JSNodeFilterCondition::create):
1033         * bindings/js/JSNodeFilterCustom.cpp:
1034         (WebCore::toNodeFilter):
1035         * bindings/scripts/CodeGeneratorJS.pm:
1036
1037 2011-04-13  Luiz Agostini  <luiz.agostini@openbossa.org>
1038
1039         Reviewed by Andreas Kling.
1040
1041         [Qt] QNetworkReplyHandler refactoring: some adjustments
1042         https://bugs.webkit.org/show_bug.cgi?id=57092
1043
1044         - Removing flag m_redirected from QNetworkReplyHandler and using m_redirectionTargetUrl.isValid() instead.
1045         - Moving flag m_responseContainsData from QNetworkReplyHandler to the reply wrapper and removing the connection of
1046         signal metaDataChanged for m_responseContainsData to be consistent.
1047         - Using an OwnPtr to keep the reference to the QNetworkReplyWrapper.
1048
1049         * platform/network/qt/QNetworkReplyHandler.cpp:
1050         (WebCore::QNetworkReplyWrapper::QNetworkReplyWrapper):
1051         (WebCore::QNetworkReplyWrapper::receiveMetaData):
1052         (WebCore::QNetworkReplyWrapper::didReceiveReadyRead):
1053         (WebCore::QNetworkReplyHandler::QNetworkReplyHandler):
1054         (WebCore::QNetworkReplyHandler::release):
1055         (WebCore::shouldIgnoreHttpError):
1056         (WebCore::QNetworkReplyHandler::finish):
1057         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
1058         (WebCore::QNetworkReplyHandler::redirect):
1059         (WebCore::QNetworkReplyHandler::forwardData):
1060         * platform/network/qt/QNetworkReplyHandler.h:
1061         (WebCore::QNetworkReplyWrapper::responseContainsData):
1062         (WebCore::QNetworkReplyWrapper::redirected):
1063
1064 2011-04-15  Alexey Proskuryakov  <ap@apple.com>
1065
1066         Chromium build fix.
1067
1068         * platform/SecureTextInput.h: CARBON_SECURE_INPUT_MODE no longer exists.
1069
1070 2011-04-15  Mike Reed  <reed@google.com>
1071
1072         Reviewed by Darin Fisher.
1073
1074         hide unused static function when SKIA_GPU is enabled
1075         https://bugs.webkit.org/show_bug.cgi?id=58670
1076
1077         No new tests. Just fixes a warning (treated as an error) when SKIA_GPU is enabled
1078
1079         * platform/graphics/skia/ImageSkia.cpp:
1080
1081 2011-04-15  Simon Fraser  <simon.fraser@apple.com>
1082
1083         Reviewed by Beth Dakin.
1084
1085         Some borders with border-radius do not have rounded inner edges
1086         https://bugs.webkit.org/show_bug.cgi?id=58457
1087         
1088         Improve the logic used to compute the inner radii on curved
1089         borders, to maintain borders of even thickness around the curve.
1090         
1091         Tests: fast/borders/mixed-border-styles-radius.html
1092                fast/borders/mixed-border-styles.html
1093
1094         * rendering/RenderBoxModelObject.h:
1095         * rendering/RenderBoxModelObject.cpp:
1096         (WebCore::RenderBoxModelObject::computeBorderOuterRect):
1097         (WebCore::RenderBoxModelObject::computeBorderInnerRect):
1098         Two new utility functions to share some code that was in both paintBorder()
1099         and paintBoxShaadow().
1100         getRoundedInnerBorderWithBorderWidths() now takes the outer border box
1101         as well as the inner box.
1102         
1103         (WebCore::RenderBoxModelObject::paintBorder): Call new methods.
1104         (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto.
1105
1106         * rendering/RenderObject.cpp:
1107         (WebCore::RenderObject::drawBoxSideFromPath):
1108         getRoundedInnerBorderWithBorderWidths() now takes the outer border box
1109         as well as the inner box.
1110
1111         * rendering/style/RenderStyle.cpp:
1112         (WebCore::RenderStyle::getRoundedInnerBorderWithBorderWidths):
1113         * rendering/style/RenderStyle.h:
1114         Compute the inner radii by starting with teh radii used for the
1115         outer box, and then shrinking them down based on the border thickness.
1116
1117 2011-04-14  Alexey Proskuryakov  <ap@apple.com>
1118
1119         Reviewed by Dan Bernstein.
1120
1121         WebKit2: Password field input does not switch to ASCII-compatible source
1122         https://bugs.webkit.org/show_bug.cgi?id=58583
1123         <rdar://problem/9059651>
1124
1125         * platform/SecureTextInput.cpp:
1126         (WebCore::enableSecureTextInput):
1127         (WebCore::disableSecureTextInput):
1128         This is now only used by Chromium. There is no need to change TSMDocument properties in
1129         renderer process (and really, all secure text input logic in WebCore should be eliminated).
1130
1131 2011-04-13  Xiaomei Ji  <xji@chromium.org>
1132
1133         Reviewed by Ryosuke Niwa.
1134
1135         Continue (3rd) experiment with moving caret by word in visual order.
1136         https://bugs.webkit.org/show_bug.cgi?id=58294
1137
1138         This patch along with r82588 and r83483 implements moving caret by
1139         word in visual order.
1140         
1141         The overall algorithm is:
1142         1. First get the InlineBox and offset of the pass-in VisiblePosition.
1143         2. Based on the position (left boundary, middle, right boundary) of the offset and the
1144            direction of the movement, look for visually adjacent word breaks.
1145         2.1 If the offset is the minimum offset of the box,
1146             return the rightmost word boundary in previous boxes if moving left.
1147             return the leftmost word boundary in box and next boxes if moving right.
1148         2.2 Similar for the case when offset is at the maximum offset of the box.
1149         2.3 When offset is inside the box (not at boundaries), first find the previousWordPosition 
1150             or nextWordPosition based on the directionality of the box. If this word break position 
1151             is also inside the same box, return it. Otherwise (the nextWordPosition or 
1152             previousWordPosition is not in the same box or is at the box boundary), collect all the 
1153             word breaks in the box and search for the one closest to the input "offset" based on 
1154             box directionality, block directionality, and movement direction. Continue search in 
1155             adjacent boxes if needed.
1156
1157         Notes:
1158         1. Word boundaries are collected one box at a time. Only when a boundary that is closest to 
1159            the input position (in the moving direction) is not available in current box, word 
1160            boundaries in adjacent box will be collected. So, there is no need to save InlineBox in 
1161            word boundaries. Instead, the word boundaries are saved as a pair 
1162            (VisiblePosition, offset) to avoid recomputing VisiblePosition.
1163  
1164         2. We only collect boundaries of the right kind (i.e. left boundary of a word in LTR block
1165            and right boundary of a word in RTL block). And word boundaries are collected using 
1166            previousWordPosition() and nextWordPosition(). So when box directionality is the same as 
1167            block directionality, word boundaries are collected from right to left visually in a LTR 
1168            box, and word boundaries are collected from left to right visually in a RTL box. It is
1169            the other way around when box directionality is different from block directionality.
1170
1171         3. To find the right kinds of word boundaries, we must move back and forth between words
1172            in some situations. For example, if we're moving to the right in a LTR box in LTR block,
1173            we cannot simply return nextWordPosition() because it would return the right boundary
1174            of a word. Instead, we return nextWordPosition()'s nextWordPosition()'s previousWordPosition().
1175
1176         4. When collecting word breaks inside a box, it first computes a start position, then
1177            collect the right kind of word breaks until it reaches the end of (or beyond) the box.
1178            In the meanwhile, it might need special handling on the rightmost or leftmost position 
1179            based on the directionality of the box and block. These computations do not consider the 
1180            box's bidi level.
1181
1182         * editing/visible_units.cpp:
1183         (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality):
1184         (WebCore::collectWordBreaksInBox):
1185         (WebCore::previousWordBoundaryInBox):
1186         (WebCore::nextWordBoundaryInBox):
1187         (WebCore::visuallyLastWordBoundaryInBox):
1188         (WebCore::leftWordBoundary):
1189         (WebCore::rightWordBoundary):
1190         (WebCore::leftWordPosition):
1191         (WebCore::rightWordPosition):
1192
1193 2011-04-14  Zhenyao Mo  <zmo@google.com>
1194
1195         Reviewed by Kenneth Russell.
1196
1197         Use HTMLImageElement in Canvas 2D / WebGL before response is ready causes crash
1198         https://bugs.webkit.org/show_bug.cgi?id=58501
1199
1200         * html/canvas/WebGLRenderingContext.cpp:
1201         (WebCore::WebGLRenderingContext::texImage2D): Call validateHTMLImageElement().
1202         (WebCore::WebGLRenderingContext::texSubImage2D): Ditto.
1203         (WebCore::WebGLRenderingContext::validateHTMLImageElement): Make sure image is ready.
1204         * html/canvas/WebGLRenderingContext.h:
1205
1206 2011-04-07  MORITA Hajime  <morrita@google.com>
1207
1208         Reviewed by Ryosuke Niwa.
1209
1210         DocumentMaker::AllMarkers should not be a part of DocumentMarker::MarkerType
1211         https://bugs.webkit.org/show_bug.cgi?id=58112
1212         
1213         - Converted DocumentMarker::MarkerTypes from unsigned int to a class.
1214         - Converted DocumentMarker::AllMarkers from an enum entry to a subclass of MarkerTypes.
1215         - Changed type of some MarkerType argument on DocumentMarkerController API to MarkerTypes
1216           which should allow a combination of MarkerType constansts.
1217         - Removed some MarkerType arguments on DocumentMarkerController API
1218           which only received AllMarkers.
1219         
1220         No new tests, no behavior change.
1221
1222         * WebCore.exp.in:
1223         * dom/DocumentMarker.h:
1224         (WebCore::DocumentMarker::MarkerTypes::MarkerTypes):
1225         (WebCore::DocumentMarker::MarkerTypes::contains):
1226         (WebCore::DocumentMarker::MarkerTypes::intersects):
1227         (WebCore::DocumentMarker::MarkerTypes::operator==):
1228         (WebCore::DocumentMarker::MarkerTypes::add):
1229         (WebCore::DocumentMarker::MarkerTypes::remove):
1230         (WebCore::DocumentMarker::AllMarkers::AllMarkers):
1231         * dom/DocumentMarkerController.cpp:
1232         (WebCore::DocumentMarkerController::possiblyHasMarkers):
1233         (WebCore::DocumentMarkerController::addMarker):
1234         (WebCore::DocumentMarkerController::copyMarkers):
1235         (WebCore::DocumentMarkerController::removeMarkers):
1236         (WebCore::DocumentMarkerController::markerContainingPoint):
1237         (WebCore::DocumentMarkerController::markersInRange):
1238         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
1239         (WebCore::DocumentMarkerController::removeMarkersFromMarkerMapVectorPair):
1240         (WebCore::DocumentMarkerController::repaintMarkers):
1241         (WebCore::DocumentMarkerController::shiftMarkers):
1242         (WebCore::DocumentMarkerController::setMarkersActive):
1243         (WebCore::DocumentMarkerController::hasMarkers):
1244         (WebCore::DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
1245         * dom/DocumentMarkerController.h:
1246
1247 2011-04-14  Geoffrey Garen  <ggaren@apple.com>
1248
1249         Reviewed by Oliver Hunt.
1250
1251         Complicated hash table is complicated
1252         https://bugs.webkit.org/show_bug.cgi?id=58631
1253         
1254         Now that we use the opaque roots system to track node wrapper lifetime,
1255         we can remove a lot of complicated hash-tablery that used to do the same.
1256         
1257         Now normal world node wrappers are just set as direct properties of
1258         ScriptWrappable, while isolated world node wrappers and other DOM object
1259         wrappers are stored in a shared, per-world hash table.
1260
1261         In addition to reducing complexity, this makes DOM wrapper allocation
1262         1.6X faster (tested with scratch-gc-dom3.html), and it reduces the memory
1263         footprint of normal world wrappers by ~2/3, and isolated world wrappers
1264         by ~1/3.
1265
1266         * WebCore.exp.in: Paying the patch tithe.
1267
1268         * bindings/js/DOMWrapperWorld.cpp:
1269         (WebCore::DOMWrapperWorld::~DOMWrapperWorld):
1270         (WebCore::DOMWrapperWorld::clearWrappers): No more per-document hash tables.
1271
1272         (WebCore::JSNodeHandleOwner::finalize): Changed to call a helper function,
1273         so the code to destroy a wrapper can live next to the code to create one.
1274
1275         * bindings/js/DOMWrapperWorld.h: No more per-document hash tables.
1276
1277         * bindings/js/JSDOMBinding.cpp:
1278         (WebCore::uncacheDOMObjectWrapper):
1279         * bindings/js/JSDOMBinding.h:
1280         (WebCore::createDOMNodeWrapper):
1281         (WebCore::getDOMNodeWrapper): No more per-document hash tables.
1282         Added uncacheDOMObjectWrapper to be symmetrical with cacheDOMObjectWrapper.
1283
1284         * bindings/js/JSDocumentCustom.cpp:
1285         (WebCore::toJS):
1286         * bindings/js/JSElementCustom.cpp:
1287         (WebCore::toJSNewlyCreated):
1288         * bindings/js/JSNodeCustom.cpp:
1289         (WebCore::createWrapperInline): Ditto.
1290
1291         * bindings/js/JSNodeCustom.h:
1292         (WebCore::getCachedDOMNodeWrapper):
1293         (WebCore::cacheDOMNodeWrapper):
1294         (WebCore::uncacheDOMNodeWrapper):
1295         (WebCore::toJS): Implemented the scheme described above.
1296
1297         * bindings/js/ScriptWrappable.h:
1298         (WebCore::ScriptWrappable::wrapper):
1299         (WebCore::ScriptWrappable::setWrapper):
1300         (WebCore::ScriptWrappable::clearWrapper): ScriptWrappable needs a handle
1301         owner now, since we don't have an extra handle living in a hash table
1302         to maintain ownership for us.
1303
1304         * dom/Document.cpp:
1305         (WebCore::Document::Document):
1306         (WebCore::Document::~Document):
1307         * dom/Document.h:
1308         * dom/Node.cpp:
1309         (WebCore::Node::setDocument): No more per-document hash tables.
1310
1311         * html/HTMLCanvasElement.cpp:
1312         (WebCore::HTMLCanvasElement::createImageBuffer): Removed call to
1313         hasCachedDOMNodeWrapperUnchecked because that was the old way of doing
1314         things, and I was in the mood for getting rid of the old way. It's
1315         debatable whether the check was ever a good idea. Even when a <canvas>
1316         doesn't have a direct JS wrapper, other JS references can still keep
1317         the <canvas> alive. So, it's probably best always to report extra cost.
1318
1319 2011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
1320
1321         Reviewed by Pavel Feldman.
1322
1323         Web Inspector: Rename rawRequestHeadersText and RawResponseHeadersText to requestHeadersText and responseHeadersText
1324         https://bugs.webkit.org/show_bug.cgi?id=58650
1325
1326         * inspector/Inspector.json:
1327         * inspector/InspectorResourceAgent.cpp:
1328         (WebCore::buildObjectForResourceResponse):
1329         * inspector/front-end/NetworkManager.js:
1330         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
1331         * inspector/front-end/Resource.js:
1332         (WebInspector.Resource.prototype.get requestHeadersText):
1333         (WebInspector.Resource.prototype.set requestHeadersText):
1334         (WebInspector.Resource.prototype.get requestHeadersSize):
1335         (WebInspector.Resource.prototype.get responseHeadersText):
1336         (WebInspector.Resource.prototype.set responseHeadersText):
1337         (WebInspector.Resource.prototype.get responseHeadersSize):
1338         (WebInspector.Resource.prototype._headersSize):
1339         * inspector/front-end/ResourceHeadersView.js:
1340         (WebInspector.ResourceHeadersView):
1341         (WebInspector.ResourceHeadersView.prototype._refreshRequestHeaders):
1342         (WebInspector.ResourceHeadersView.prototype._refreshResponseHeaders):
1343         (WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle):
1344         (WebInspector.ResourceHeadersView.prototype._refreshHeadersText):
1345         (WebInspector.ResourceHeadersView.prototype._toggleRequestHeadersText):
1346         (WebInspector.ResourceHeadersView.prototype._toggleResponseHeadersText):
1347         (WebInspector.ResourceHeadersView.prototype._createHeadersToggleButton):
1348         * inspector/front-end/networkPanel.css:
1349         (.resource-headers-view .outline-disclosure li.headers-text):
1350         * platform/network/ResourceLoadInfo.h:
1351
1352 2011-04-15  Luke Macpherson   <macpherson@chromium.org>
1353
1354         Reviewed by Dimitri Glazkov.
1355
1356         Implement css overflow properties in CSSStyleApplyProperty
1357         https://bugs.webkit.org/show_bug.cgi?id=58633
1358
1359         No new tests required as no functionality changes.
1360
1361         * css/CSSStyleApplyProperty.cpp:
1362         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
1363         Add initializers for CSSPropertyOverflowX, CSSPropertyOverflowY and CSSPropertyOverflow.
1364         * css/CSSStyleSelector.cpp:
1365         (WebCore::CSSStyleSelector::applyProperty):
1366         Delete existing implementations.
1367
1368 2011-04-15  Sam Weinig  <sam@webkit.org>
1369
1370         Reviewed by Maciej Stachowiak.
1371
1372         Make mac WebKit1 use the default localization strategy
1373         https://bugs.webkit.org/show_bug.cgi?id=58628
1374
1375         * English.lproj/Localizable.strings:
1376         Update by running update-webkit-localizable-strings.
1377
1378         * platform/DefaultLocalizationStrategy.cpp:
1379         (WebCore::DefaultLocalizationStrategy::contextMenuItemTagLookUpInDictionary):
1380         (WebCore::DefaultLocalizationStrategy::keygenKeychainItemName):
1381         (WebCore::DefaultLocalizationStrategy::imageTitle):
1382         Match the WebKit1 versions of these functions by special casing CF platforms.
1383
1384 2011-04-15  Vsevolod Vlasov  <vsevik@chromium.org>
1385
1386         Reviewed by Pavel Feldman.
1387
1388         Web Inspector: No console message and headers in inspector when X-Frame-Options header blocks a load
1389         https://bugs.webkit.org/show_bug.cgi?id=58136
1390
1391         Passed response info to inspector when X-Frame-Options header blocks resource loading.
1392
1393         Test: http/tests/inspector/network/x-frame-options-deny.html
1394
1395         * inspector/InspectorInstrumentation.cpp:
1396         (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDeniedImpl):
1397         * inspector/InspectorInstrumentation.h:
1398         (WebCore::InspectorInstrumentation::continueAfterXFrameOptionsDenied):
1399         * loader/MainResourceLoader.cpp:
1400         (WebCore::MainResourceLoader::didReceiveResponse):
1401
1402 2011-04-15  Andrey Adaikin  <aandrey@google.com>
1403
1404         Reviewed by Pavel Feldman.
1405
1406         Web Inspector: TextViewer and TextEditorModel must support both \n and \r\n as line separators
1407         https://bugs.webkit.org/show_bug.cgi?id=58449
1408
1409         Test: inspector/editor/text-editor-model.html
1410
1411         * inspector/front-end/TextEditorModel.js:
1412         (WebInspector.TextEditorModel):
1413         (WebInspector.TextEditorModel.prototype.get text):
1414         (WebInspector.TextEditorModel.prototype.setText):
1415         (WebInspector.TextEditorModel.prototype._innerSetText):
1416         (WebInspector.TextEditorModel.prototype.copyRange):
1417
1418 2011-04-15  Sergey Vorobyev  <sergeyvorobyev@google.com>
1419
1420         Reviewed by Yury Semikhatsky.
1421
1422         Web Inspector: Network events don't preserves,
1423         when inspector frontend closed and open again
1424         https://bugs.webkit.org/show_bug.cgi?id=58064
1425
1426         Added InspectorFrontendProxy and EventsCollector.
1427         They allow captured messages from InspectorResourceAgent
1428         to frontend (or mockFrontend if frontend disabled) and
1429         push collected data when frontend reconnect.
1430         This functionality is disabled by default.
1431
1432         * CMakeLists.txt:
1433         * GNUmakefile.list.am:
1434         * WebCore.gypi:
1435         * WebCore.pro:
1436         * WebCore.vcproj/WebCore.vcproj:
1437         * WebCore.xcodeproj/project.pbxproj:
1438         * inspector/EventsCollector.cpp: Added.
1439         (WebCore::EventsCollector::EventsCollector):
1440         (WebCore::EventsCollector::addEvent):
1441         (WebCore::EventsCollector::sendCollectedEvents):
1442         * inspector/EventsCollector.h: Added.
1443         (WebCore::EventsCollector::~EventsCollector):
1444         * inspector/Inspector.json:
1445         * inspector/InspectorFrontendProxy.cpp: Added.
1446         (WebCore::InspectorFrontendProxy::InspectorFrontendProxy):
1447         (WebCore::InspectorFrontendProxy::setInspectorFrontendChannel):
1448         (WebCore::InspectorFrontendProxy::setEventsCollector):
1449         (WebCore::InspectorFrontendProxy::sendMessageToFrontend):
1450         * inspector/InspectorFrontendProxy.h: Added.
1451         (WebCore::InspectorFrontendProxy::~InspectorFrontendProxy):
1452         * inspector/InspectorInstrumentation.cpp:
1453         (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl):
1454         (WebCore::InspectorInstrumentation::loadEventFiredImpl):
1455         * inspector/InspectorInstrumentation.h:
1456         (WebCore::InspectorInstrumentation::willSendRequest):
1457         (WebCore::InspectorInstrumentation::willReceiveResourceResponse):
1458         (WebCore::InspectorInstrumentation::didReceiveContentLength):
1459         (WebCore::InspectorInstrumentation::didFinishLoading):
1460         (WebCore::InspectorInstrumentation::domContentLoadedEventFired):
1461         (WebCore::InspectorInstrumentation::loadEventFired):
1462         (WebCore::InspectorInstrumentation::frameDetachedFromParent):
1463         (WebCore::InspectorInstrumentation::didCreateWebSocket):
1464         (WebCore::InspectorInstrumentation::willSendWebSocketHandshakeRequest):
1465         (WebCore::InspectorInstrumentation::didReceiveWebSocketHandshakeResponse):
1466         (WebCore::InspectorInstrumentation::didCloseWebSocket):
1467         * inspector/InspectorResourceAgent.cpp:
1468         (WebCore::InspectorResourceAgent::setFrontend):
1469         (WebCore::InspectorResourceAgent::resourceContent):
1470         (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
1471         (WebCore::InspectorResourceAgent::didReceiveResponse):
1472         (WebCore::InspectorResourceAgent::domContentEventFired):
1473         (WebCore::InspectorResourceAgent::loadEventFired):
1474         (WebCore::InspectorResourceAgent::enabledBackgoundEventsCoollection):
1475         (WebCore::InspectorResourceAgent::enable):
1476         (WebCore::InspectorResourceAgent::InspectorResourceAgent):
1477         * inspector/InspectorResourceAgent.h:
1478         * inspector/front-end/NetworkManager.js:
1479         (WebInspector.NetworkDispatcher.prototype.domContentEventFired):
1480         (WebInspector.NetworkDispatcher.prototype.loadEventFired):
1481         * inspector/front-end/inspector.js:
1482         (WebInspector.domContentEventFired):
1483         (WebInspector.loadEventFired):
1484
1485 2011-04-15  Alexis Menard  <alexis.menard@openbossa.org>
1486
1487         Reviewed by Dimitri Glazkov.
1488
1489         REGRESSION(r83397) [Qt] When clicking on the media elements they grow 2 pixels.
1490         https://bugs.webkit.org/show_bug.cgi?id=58477
1491
1492         Since r83397 the media controls elements are actual DOM elements.
1493         Therefore the global style-sheet applies to them. html.css defines
1494         input[type="button"]:active to be border-style: inset which means
1495         that when the buttons are active they grow by their border size. Therefore
1496         ports which are not using the borders must explicitly disable them in their custom
1497         stylesheet.
1498
1499         * css/mediaControlsQt.css:
1500         (audio::-webkit-media-controls-mute-button):
1501         (video::-webkit-media-controls-mute-button):
1502         (audio::-webkit-media-controls-play-button):
1503         (video::-webkit-media-controls-play-button):
1504         (video::-webkit-media-controls-fullscreen-button):
1505         * css/mediaControlsQuickTime.css:
1506         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
1507         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
1508         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
1509         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
1510         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
1511         (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
1512         (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
1513         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
1514         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
1515
1516 2011-04-15  Zelidrag Hornung  <zelidrag@chromium.org>
1517
1518         Reviewed by Darin Fisher.
1519
1520         Added enums for external file system type.
1521         https://bugs.webkit.org/show_bug.cgi?id=58456
1522
1523         * fileapi/DOMFileSystemBase.cpp:
1524         (WebCore::DOMFileSystemBase::crackFileSystemURL):
1525         * fileapi/DOMFileSystemBase.h:
1526         * fileapi/EntryBase.cpp:
1527         (WebCore::EntryBase::toURL):
1528         * page/DOMWindow.cpp:
1529         (WebCore::DOMWindow::requestFileSystem):
1530         * page/DOMWindow.h:
1531         * platform/AsyncFileSystem.h:
1532         * workers/WorkerContext.cpp:
1533         (WebCore::WorkerContext::requestFileSystem):
1534         (WebCore::WorkerContext::requestFileSystemSync):
1535         * workers/WorkerContext.h:
1536
1537 2011-04-15  Pavel Feldman  <pfeldman@google.com>
1538
1539         Reviewed by Yury Semikhatsky.
1540
1541         Web Inspector: make resource revisions use dedicated type (not Resource clone).
1542         https://bugs.webkit.org/show_bug.cgi?id=58659
1543
1544         * inspector/front-end/CSSStyleModel.js:
1545         (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
1546         * inspector/front-end/Resource.js:
1547         (WebInspector.Resource.prototype.addRevision):
1548         (WebInspector.Resource.prototype._innerRequestContent.onResourceContent):
1549         (WebInspector.Resource.prototype._innerRequestContent):
1550         (WebInspector.ResourceRevision):
1551         (WebInspector.ResourceRevision.prototype.get resource):
1552         (WebInspector.ResourceRevision.prototype.get timestamp):
1553         (WebInspector.ResourceRevision.prototype.get content):
1554         (WebInspector.ResourceRevision.prototype.revertToThis):
1555         (WebInspector.ResourceRevision.prototype.requestContent.mycallback):
1556         (WebInspector.ResourceRevision.prototype.requestContent):
1557         * inspector/front-end/ResourceView.js:
1558         (WebInspector.ResourceView.resourceViewTypeMatchesResource):
1559         (WebInspector.ResourceView.resourceViewForResource):
1560         (WebInspector.ResourceView.recreateResourceView):
1561         (WebInspector.ResourceView.existingResourceViewForResource):
1562         (WebInspector.RevisionSourceFrame):
1563         (WebInspector.RevisionSourceFrame.prototype.get resource):
1564         (WebInspector.RevisionSourceFrame.prototype.isContentEditable):
1565         (WebInspector.RevisionSourceFrame.prototype.requestContent):
1566         * inspector/front-end/ResourcesPanel.js:
1567         (WebInspector.ResourcesPanel.prototype._showResourceView):
1568         (WebInspector.ResourcesPanel.prototype._showRevisionView):
1569         (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup.step1):
1570         (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup.step2):
1571         (WebInspector.ResourcesPanel.prototype._fetchAndApplyDiffMarkup):
1572         (WebInspector.ResourceRevisionTreeElement):
1573         (WebInspector.ResourceRevisionTreeElement.prototype.get itemURL):
1574         (WebInspector.ResourceRevisionTreeElement.prototype.onselect):
1575         (WebInspector.ResourceRevisionTreeElement.prototype._ondragstart):
1576         (WebInspector.ResourceRevisionTreeElement.prototype._handleContextMenuEvent):
1577         * inspector/front-end/SourceFrame.js:
1578         (WebInspector.SourceFrame.prototype._ensureContentLoaded):
1579         (WebInspector.SourceFrame.prototype.requestContent):
1580         (WebInspector.SourceFrame.prototype.commitEditing.didEditContent):
1581         (WebInspector.SourceFrame.prototype.commitEditing):
1582
1583 2011-04-15  Alexander Pavlov  <apavlov@chromium.org>
1584
1585         Reviewed by Yury Semikhatsky.
1586
1587         Web Inspector: Prevent Backspace keypresses from routing into the inspected page
1588         https://bugs.webkit.org/show_bug.cgi?id=58653
1589
1590         * inspector/front-end/inspector.js:
1591         (WebInspector.documentKeyDown):
1592
1593 2011-04-15  Alice Boxhall  <aboxhall@chromium.org>
1594
1595         Reviewed by Ryosuke Niwa.
1596
1597         Text selection changes unexpectedly when dragging out of the <input>
1598         https://bugs.webkit.org/show_bug.cgi?id=55552
1599
1600         Tests: editing/selection/select-out-of-editable.html
1601                editing/selection/select-out-of-floated-contenteditable.html
1602                editing/selection/select-out-of-floated-input.html
1603                editing/selection/select-out-of-floated-textarea.html
1604
1605         * page/EventHandler.cpp:
1606         (WebCore::selectionExtentRespectingEditingBoundary): When dragging from an editable element, check that
1607         the endpoint is not outside the element. If it is, translate the point into a local point within
1608         the editable element.
1609         (WebCore::EventHandler::updateSelectionForMouseDrag): Call targetPositionForSelectionEndpoint() to
1610         calculate the selection endpoint.
1611
1612 2011-04-15  Adam Roben  <aroben@apple.com>
1613
1614         Roll out r83954
1615
1616         It was causing fast/dom/Window/timer-null-script-execution-context.html to crash on multiple
1617         bots.
1618
1619         See <http://webkit.org/b/58610>.
1620
1621         * bindings/js/JSDOMWindowCustom.cpp:
1622         (WebCore::JSDOMWindow::setTimeout):
1623         (WebCore::JSDOMWindow::setInterval):
1624         * bindings/js/JSWorkerContextCustom.cpp:
1625         (WebCore::JSWorkerContext::setTimeout):
1626         (WebCore::JSWorkerContext::setInterval):
1627         * bindings/js/ScheduledAction.cpp:
1628         (WebCore::ScheduledAction::create):
1629         * bindings/js/ScheduledAction.h:
1630         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1631         (WebCore::WindowSetTimeoutImpl):
1632         * page/ContentSecurityPolicy.cpp:
1633         * page/ContentSecurityPolicy.h:
1634
1635 2011-04-15  Pavel Feldman  <pfeldman@google.com>
1636
1637         Reviewed by Yury Semikhatsky.
1638
1639         Web Inspector: refactor resource setContent / revisions infrastructure to get
1640         rid of onRevert callback.
1641         https://bugs.webkit.org/show_bug.cgi?id=58649
1642
1643         Instead, we will have DomainModel/Resource binding responsible for changing
1644         underlying model upon resource changes and vice versa.
1645
1646         * inspector/Inspector.json:
1647         * inspector/InspectorCSSAgent.cpp:
1648         (WebCore::InspectorCSSAgent::getStyleSheet):
1649         (WebCore::InspectorCSSAgent::getStyleSheetText):
1650         (WebCore::InspectorCSSAgent::setStyleSheetText):
1651         (WebCore::InspectorCSSAgent::setPropertyText):
1652         (WebCore::InspectorCSSAgent::toggleProperty):
1653         (WebCore::InspectorCSSAgent::setRuleSelector):
1654         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
1655         * inspector/InspectorCSSAgent.h:
1656         * inspector/front-end/CSSStyleModel.js:
1657         (WebInspector.CSSStyleModel):
1658         (WebInspector.CSSStyleModel.prototype.setRuleSelector):
1659         (WebInspector.CSSStyleModel.prototype.addRule):
1660         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged.callback):
1661         (WebInspector.CSSStyleModel.prototype._fireStyleSheetChanged):
1662         (WebInspector.CSSStyleModel.prototype.setStyleSheetText):
1663         (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt):
1664         (WebInspector.CSSProperty.prototype.setText):
1665         (WebInspector.CSSProperty.prototype.setText.callback):
1666         (WebInspector.CSSProperty.prototype.setDisabled.callback):
1667         (WebInspector.CSSProperty.prototype.setDisabled):
1668         (WebInspector.CSSStyleSheet.prototype.setText):
1669         (WebInspector.CSSStyleModelResourceBinding):
1670         (WebInspector.CSSStyleModelResourceBinding.prototype.setContent):
1671         (WebInspector.CSSStyleModelResourceBinding.prototype._frameNavigated):
1672         (WebInspector.CSSStyleModelResourceBinding.prototype._innerSetContent):
1673         (WebInspector.CSSStyleModelResourceBinding.prototype._loadStyleSheetHeaders):
1674         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged.setContent):
1675         (WebInspector.CSSStyleModelResourceBinding.prototype._styleSheetChanged):
1676         * inspector/front-end/DebuggerPresentationModel.js:
1677         (WebInspector.DebuggerPresentationModel):
1678         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didEditScriptSource):
1679         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didReceiveSource):
1680         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
1681         (WebInspector.DebuggerPresentationModelResourceBinding):
1682         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
1683         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
1684         * inspector/front-end/Object.js:
1685         (WebInspector.Object.prototype.hasEventListeners):
1686         * inspector/front-end/Resource.js:
1687         (WebInspector.Resource):
1688         (WebInspector.Resource.registerDomainModelBinding):
1689         (WebInspector.Resource.prototype.isEditable):
1690         (WebInspector.Resource.prototype.setContent):
1691         (WebInspector.Resource.prototype.addRevision):
1692         (WebInspector.Resource.prototype.revertToThis.callback):
1693         (WebInspector.Resource.prototype.revertToThis):
1694         (WebInspector.ResourceDomainModelBinding):
1695         (WebInspector.ResourceDomainModelBinding.prototype.canSetContent):
1696         (WebInspector.ResourceDomainModelBinding.prototype.setContent):
1697         * inspector/front-end/ResourceView.js:
1698         (WebInspector.ResourceView.createResourceView):
1699         (WebInspector.ResourceView.resourceViewTypeMatchesResource):
1700         (WebInspector.ResourceSourceFrame.prototype.isContentEditable):
1701         (WebInspector.ResourceSourceFrame.prototype.editContent):
1702         (WebInspector.ResourceSourceFrame.prototype.endEditing):
1703         (WebInspector.ResourceSourceFrame.prototype._clearIncrementalUpdateTimer):
1704         (WebInspector.ResourceSourceFrame.prototype._requestContent):
1705         * inspector/front-end/ResourcesPanel.js:
1706         (WebInspector.ResourcesPanel.prototype._resourceAdded):
1707         (WebInspector.FrameResourceTreeElement):
1708         (WebInspector.FrameResourceTreeElement.prototype._populateRevisions):
1709         (WebInspector.FrameResourceTreeElement.prototype._revisionAdded):
1710         (WebInspector.FrameResourceTreeElement.prototype._appendRevision):
1711         * inspector/front-end/inspector.html:
1712
1713 2011-04-15  Andrey Kosyakov  <caseq@chromium.org>
1714
1715         Unreviewed, rolling out r83949.
1716         http://trac.webkit.org/changeset/83949
1717         https://bugs.webkit.org/show_bug.cgi?id=57960
1718
1719         broke 31 tests in chromium win & linux
1720
1721         * platform/graphics/chromium/GLES2Canvas.cpp:
1722         (WebCore::GLES2Canvas::drawTexturedRect):
1723         * platform/graphics/chromium/GLES2Canvas.h:
1724         * platform/graphics/gpu/Texture.cpp:
1725         (WebCore::copySubRect):
1726         (WebCore::Texture::load):
1727         (WebCore::Texture::updateSubRect):
1728         * platform/graphics/gpu/Texture.h:
1729         * platform/graphics/skia/ImageBufferSkia.cpp:
1730         (WebCore::getImageData):
1731         (WebCore::putImageData):
1732         (WebCore::ImageBuffer::putUnmultipliedImageData):
1733         (WebCore::ImageBuffer::putPremultipliedImageData):
1734
1735 2011-04-15  Ben Taylor  <bentaylor.solx86@gmail.com>
1736
1737         Reviewed by Alexey Proskuryakov.
1738
1739         Fix building with Sun Studio 12: function pointers for extern "C" are treated differently
1740         https://bugs.webkit.org/show_bug.cgi?id=58508
1741
1742         Since extern "C" makes a different type (although most compilers ignore that),
1743         we should be more careful when passing NPAPI callback functions.
1744
1745         * plugins/npapi.cpp:
1746         (NPN_PluginThreadAsyncCall):
1747
1748 2011-04-15  Adam Barth  <abarth@webkit.org>
1749
1750         Reviewed by Eric Seidel.
1751
1752         CSP should block string arguments to setTimeout and setInterval unless options eval-script
1753         https://bugs.webkit.org/show_bug.cgi?id=58610
1754
1755         It's somewhat sadness that the JSC and V8 code for setTimeout and
1756         setInterval are so different.  I struggled for a while with how to
1757         handle the worker case, but I decided to punt on it for now.
1758
1759         Tests: http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-allowed.html
1760                http/tests/security/contentSecurityPolicy/eval-scripts-setInterval-blocked.html
1761                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-allowed.html
1762                http/tests/security/contentSecurityPolicy/eval-scripts-setTimeout-blocked.html
1763
1764         * bindings/js/JSDOMWindowCustom.cpp:
1765         (WebCore::JSDOMWindow::setTimeout):
1766         (WebCore::JSDOMWindow::setInterval):
1767         * bindings/js/JSWorkerContextCustom.cpp:
1768         (WebCore::JSWorkerContext::setTimeout):
1769         (WebCore::JSWorkerContext::setInterval):
1770         * bindings/js/ScheduledAction.cpp:
1771         (WebCore::ScheduledAction::create):
1772         * bindings/js/ScheduledAction.h:
1773         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1774         (WebCore::WindowSetTimeoutImpl):
1775         * page/ContentSecurityPolicy.cpp:
1776         (WebCore::ContentSecurityPolicy::allowEval):
1777         * page/ContentSecurityPolicy.h:
1778
1779 2011-04-15  Adam Barth  <abarth@webkit.org>
1780
1781         Reviewed by Eric Seidel.
1782
1783         Add support for CSP's 'self' source
1784         https://bugs.webkit.org/show_bug.cgi?id=58604
1785
1786         This change is now trivially easy.
1787
1788         Test: http/tests/security/contentSecurityPolicy/script-src-self.html
1789
1790         * page/ContentSecurityPolicy.cpp:
1791         (WebCore::CSPSourceList::addSourceSelf):
1792
1793 2011-04-15  Anna Cavender  <annacc@chromium.org>
1794
1795         Reviewed by Eric Carlson.
1796
1797         Renaming TRACK feature define to VIDEO_TRACK
1798         https://bugs.webkit.org/show_bug.cgi?id=53556
1799
1800         No new tests. No new functionality.
1801
1802         * CMakeLists.txt:
1803         * Configurations/FeatureDefines.xcconfig:
1804         * DerivedSources.make:
1805         * GNUmakefile.am:
1806         * features.pri:
1807         * html/HTMLTagNames.in:
1808         * html/HTMLTrackElement.cpp:
1809         * html/HTMLTrackElement.h:
1810         * html/HTMLTrackElement.idl:
1811
1812 2011-04-14  Andrey Adaikin  <aandrey@google.com>
1813
1814         Reviewed by Pavel Feldman.
1815
1816         Web Inspector: Ctrl+Left/Right switch panels during live editing
1817         https://bugs.webkit.org/show_bug.cgi?id=58521
1818
1819         Disable Ctrl+Left/Right keyboard shortcuts while in live edit.
1820
1821         * inspector/front-end/SourceFrame.js:
1822         (WebInspector.SourceFrame.prototype.readOnlyStateChanged):
1823         * inspector/front-end/TextViewer.js:
1824         (WebInspector.TextViewer.prototype.set readOnly):
1825         (WebInspector.TextViewer.prototype.get readOnly):
1826         (WebInspector.TextViewer.prototype._doubleClick):
1827         (WebInspector.TextViewer.prototype._commitEditing.didCommitEditing):
1828         (WebInspector.TextViewer.prototype._commitEditing):
1829         (WebInspector.TextViewer.prototype._cancelEditing):
1830         (WebInspector.TextViewerDelegate.prototype.readOnlyStateChanged):
1831         (WebInspector.TextEditorMainPanel.prototype.set readOnly):
1832         * inspector/front-end/inspector.js:
1833         (WebInspector.markBeingEdited):
1834         (WebInspector.isEditingAnyField):
1835         (WebInspector.startEditing.cleanUpAfterEditing):
1836
1837 2011-04-14  Vsevolod Vlasov  <vsevik@chromium.org>
1838
1839         Reviewed by Pavel Feldman.
1840
1841         Web Inspector: Enable raw HTTP headers support
1842         https://bugs.webkit.org/show_bug.cgi?id=58259
1843
1844         Added raw headers text support to inspector.
1845
1846         * English.lproj/localizedStrings.js:
1847         * inspector/Inspector.json:
1848         * inspector/InspectorResourceAgent.cpp:
1849         (WebCore::buildObjectForResourceResponse):
1850         * inspector/front-end/NetworkManager.js:
1851         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
1852         * inspector/front-end/Resource.js:
1853         (WebInspector.Resource):
1854         (WebInspector.Resource.prototype.get transferSize):
1855         (WebInspector.Resource.prototype.set requestHeaders):
1856         (WebInspector.Resource.prototype.get rawRequestHeadersText):
1857         (WebInspector.Resource.prototype.set rawRequestHeadersText):
1858         (WebInspector.Resource.prototype.get requestHeadersSize):
1859         (WebInspector.Resource.prototype.set responseHeaders):
1860         (WebInspector.Resource.prototype.get rawResponseHeadersText):
1861         (WebInspector.Resource.prototype.set rawResponseHeadersText):
1862         (WebInspector.Resource.prototype.get responseHeadersSize):
1863         (WebInspector.Resource.prototype._headersSize):
1864         * inspector/front-end/ResourceHeadersView.js:
1865         (WebInspector.ResourceHeadersView):
1866         (WebInspector.ResourceHeadersView.prototype._refreshParms):
1867         (WebInspector.ResourceHeadersView.prototype._refreshRequestHeaders):
1868         (WebInspector.ResourceHeadersView.prototype._refreshResponseHeaders):
1869         (WebInspector.ResourceHeadersView.prototype._refreshHeadersTitle):
1870         (WebInspector.ResourceHeadersView.prototype._refreshHeaders):
1871         (WebInspector.ResourceHeadersView.prototype._refreshRawHeadersText):
1872         (WebInspector.ResourceHeadersView.prototype._toggleRawRequestHeadersText):
1873         (WebInspector.ResourceHeadersView.prototype._toggleRawResponseHeadersText):
1874         (WebInspector.ResourceHeadersView.prototype._createToggleButton):
1875         (WebInspector.ResourceHeadersView.prototype._createHeadersToggleButton):
1876         * inspector/front-end/networkPanel.css:
1877         (.resource-headers-view .outline-disclosure li .header-toggle):
1878         (.resource-headers-view .outline-disclosure li.expanded .header-toggle):
1879         (.resource-headers-view .outline-disclosure li .header-toggle:hover):
1880         (.resource-headers-view .outline-disclosure li.raw-headers-text):
1881         * platform/network/ResourceLoadInfo.h:
1882
1883 2011-04-14  Justin Novosad  <junov@chromium.org>
1884
1885         Reviewed by Kenneth Russell.
1886
1887         [Chromium] Accelerated 2D Canvas is slow to execute putImageData
1888         https://bugs.webkit.org/show_bug.cgi?id=57960
1889
1890         * platform/graphics/chromium/GLES2Canvas.cpp:
1891         (WebCore::GLES2Canvas::drawTexturedRect):
1892         Added an option for using the blend ops for alpha multiplication
1893         instead of compositing.
1894         (WebCore::GLES2Canvas::applyClipping):
1895         (WebCore::GLES2Canvas::putImageData):
1896         New method for drawing raw pixel data from memory to the canvas
1897         (WebCore::GLES2Canvas::putUnmultipliedImageData):
1898         Wrapper for putImageData
1899         (WebCore::GLES2Canvas::putPremultipliedImageData):
1900         Wrapper for putImageData
1901         * platform/graphics/chromium/GLES2Canvas.h:
1902         * platform/graphics/gpu/Texture.cpp:
1903         (WebCore::copySubRect):
1904         (WebCore::Texture::load):
1905         (WebCore::Texture::updateSubRect):
1906         Added an overload of the updateSubRect method that can receive a pixel 
1907         of a size that is different from texture size. Improved the performance
1908         of updateSubrect by avoiding the allocation of a temporary buffer when
1909         not required.
1910         * platform/graphics/gpu/Texture.h:
1911         * platform/graphics/skia/ImageBufferSkia.cpp:
1912         (WebCore::getImageData):
1913         In the unmultiplied path, division by alpha now performs proper
1914         rounding in order to avoid generational degradation with putImageData
1915         (WebCore::putImageData):
1916         Alpha multiplication now performs proper rounding in order to be
1917         consistent with the hardware rendering path: OpenGL always rounds when
1918         converting to fixed point representation.
1919         (WebCore::ImageBuffer::putUnmultipliedImageData):
1920         Now supports a hardware rendering path, which eliminates the need
1921         for a readback from the GPU
1922         (WebCore::ImageBuffer::putPremultipliedImageData):
1923         Now supports a hardware rendering path, which eliminates the need
1924         for a readback from the GPU
1925
1926 2011-04-14  Joone Hur  <joone.hur@collabora.co.uk>
1927
1928         Reviewed by Martin Robinson.
1929
1930         Creating a CairoPath instance is not thread safe
1931         https://bugs.webkit.org/show_bug.cgi?id=58514
1932
1933         This patch allows a cairo surface to be created just one time in order to 
1934         guarantee thread safety.
1935         In addition, CairoPath.{h,cpp} is renamed to PlatformPathCairo.{h,cpp} to 
1936         prevent confusing them with PathCairo.cpp
1937
1938         * CMakeListsEfl.txt: Added PlatformPathCairo.cpp
1939         * GNUmakefile.list.am: Added PlatformPathCairo.{h,cpp} instead of CairoPath.h.
1940         * platform/graphics/cairo/CairoPath.h: Removed.
1941         * platform/graphics/cairo/CairoUtilities.cpp: Include PlatformPathCairo.h instead of CairoPath.h.
1942         * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
1943         * platform/graphics/cairo/PathCairo.cpp: Ditto.
1944         * platform/graphics/cairo/PlatformPathCairo.cpp: Added.
1945         (WebCore::getPathSurface): Getting a static cairo surface.
1946         (WebCore::CairoPath::CairoPath): Moved the implementation of the constructor 
1947         into the CPP file.
1948         * platform/graphics/cairo/PlatformPathCairo.h: Renamed CairoPath.h to this.
1949         (WebCore::CairoPath::~CairoPath):
1950         (WebCore::CairoPath::context):
1951
1952 2011-04-14  Nat Duca  <nduca@chromium.org>
1953
1954         Reviewed by Darin Fisher.
1955
1956         [chromium] Add lowpass filter and graph to fps indicator
1957         https://bugs.webkit.org/show_bug.cgi?id=58186
1958
1959         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1960         (WebCore::CCHeadsUpDisplay::CCHeadsUpDisplay):
1961         (WebCore::CCHeadsUpDisplay::drawHudContents):
1962         (WebCore::CCHeadsUpDisplay::drawFPSCounter):
1963         (WebCore::CCHeadsUpDisplay::drawPlatformLayerTree):
1964         (WebCore::CCHeadsUpDisplay::onPresent):
1965         * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
1966
1967 2011-04-14  Beth Dakin  <bdakin@apple.com>
1968
1969         Reviewed by Adele Peterson.
1970
1971         https://bugs.webkit.org/show_bug.cgi?id=58612
1972         Crash switching overlay/non-overlay scrollbar preference 
1973         (WebCore::Page::setNeedsRecalcStyleInAllFrames + 9)
1974         -and corresponding-
1975         <rdar://problem/9241920> 
1976
1977         Speculative fix: Page could definitely be null here. 
1978         * page/FrameView.cpp:
1979         (WebCore::FrameView::scrollbarStyleChanged):
1980
1981 2011-04-14  Vsevolod Vlasov  <vsevik@chromium.org>
1982
1983         Reviewed by Pavel Feldman.
1984
1985         Web Inspector: ResourceResponse should have encodedDataLength field for synchronous requests transfer size
1986         https://bugs.webkit.org/show_bug.cgi?id=58447
1987
1988         FrameLoader now takes encoded data length for synchronous requests from the field with the same name.
1989
1990         * loader/FrameLoader.cpp:
1991         (WebCore::FrameLoader::loadResourceSynchronously):
1992         * platform/network/ResourceLoadInfo.h:
1993         (WebCore::ResourceLoadInfo::ResourceLoadInfo):
1994
1995 2011-04-14  Alok Priyadarshi  <alokp@chromium.org>
1996
1997         Reviewed by James Robinson.
1998
1999         Remove dependency on chromium skia::PlatformCanvas
2000         https://bugs.webkit.org/show_bug.cgi?id=57563
2001
2002         This patch does not change any functionality, just the type of object skia::PlatformCanvas -> SkCanvas. The object is still being created by a factory method skia::CreateBitmapCanvas defined in Chromium. We will eventually define an API that every port using skia will define.
2003
2004         * platform/graphics/chromium/FontChromiumWin.cpp:
2005         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
2006         (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
2007         (WebCore::Font::drawComplexText):
2008         * platform/graphics/chromium/ImageBufferDataSkia.h:
2009         * platform/graphics/chromium/LayerChromium.h:
2010         * platform/graphics/chromium/LayerRendererChromium.h:
2011         * platform/graphics/chromium/PlatformCanvas.cpp:
2012         (WebCore::PlatformCanvas::resize):
2013         * platform/graphics/chromium/PlatformCanvas.h:
2014         * platform/graphics/chromium/TransparencyWin.cpp:
2015         (WebCore::TransparencyWin::compositeTextComposite):
2016         (WebCore::TransparencyWin::makeLayerOpaque):
2017         * platform/graphics/skia/ImageBufferSkia.cpp:
2018         (WebCore::ImageBuffer::ImageBuffer):
2019         * platform/graphics/skia/ImageSkia.cpp:
2020         (WebCore::paintSkBitmap):
2021         (WebCore::Image::drawPattern):
2022         * platform/graphics/skia/PlatformContextSkia.cpp:
2023         (WebCore::PlatformContextSkia::PlatformContextSkia):
2024         (WebCore::PlatformContextSkia::setCanvas):
2025         (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed):
2026         * platform/graphics/skia/PlatformContextSkia.h:
2027         (WebCore::PlatformContextSkia::canvas):
2028         (WebCore::PlatformContextSkia::printing):
2029         (WebCore::PlatformContextSkia::setPrinting):
2030
2031 2011-04-14  Eric Seidel  <eric@webkit.org>
2032
2033         Reviewed by Simon Fraser.
2034
2035         PumpSession should not call currentTime() in the constructor
2036         https://bugs.webkit.org/show_bug.cgi?id=55211
2037
2038         currentTime() is expensive.  So we avoid calling it in the constructor
2039         and instead set startTime on the first check for a yield
2040         (which in the synchronous case never happens, and in the yielding
2041         case will happen immediately after the first token due to
2042         processedTokens being set to INT_MAX).
2043
2044         This ended up being a large win on (my local copy of)
2045         peacekeeper's domDynamicCreationCreateElement:
2046
2047         Before:
2048         avg 366.3333333333333
2049         median 366
2050         stdev 2.712112747574399
2051         min 362
2052         max 377
2053
2054         After:
2055         avg 345.96666666666664
2056         median 346
2057         stdev 1.6829207415152454
2058         min 343
2059         max 349
2060
2061         * html/parser/HTMLDocumentParser.cpp:
2062         * html/parser/HTMLParserScheduler.h:
2063         (WebCore::PumpSession::PumpSession):
2064         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
2065
2066 2011-04-14  Ami Fischman  <fischman@google.com>
2067
2068         Reviewed by Eric Carlson.
2069
2070         Remove unnecessary bottom margin of controls in video elements on media documents.
2071         This makes the cases of media documents and non-media documents consistent,
2072         and makes it possible to reason about the height of a rendered media document
2073         (needed e.g. for sizing iframes).
2074
2075         This change is covered by (the currently Skipped, but soon-to-be-un-Skipped)
2076         media/video-controls-in-media-document.html layouttest (see bug 54634 for
2077         the un-Skipping).
2078
2079         https://bugs.webkit.org/show_bug.cgi?id=58442
2080
2081         * css/mediaControls.css:
2082         (video:-webkit-full-page-media::-webkit-media-controls-panel):
2083         * css/mediaControlsEfl.css:
2084         (video:-webkit-full-page-media::-webkit-media-controls-panel):
2085         * css/mediaControlsQuickTime.css:
2086         (video:-webkit-full-page-media::-webkit-media-controls-panel):
2087
2088 2011-04-14  Geoffrey Garen  <ggaren@apple.com>
2089
2090         Reviewed by Oliver Hunt.
2091
2092         Use opaque roots instead of direct marking for nodes in the DOM
2093         https://bugs.webkit.org/show_bug.cgi?id=58624
2094
2095         A node treats the root of its tree (usually the document) as its opaque
2096         root during GC.
2097         
2098         This is needed for correctness in a generational GC world, but it also
2099         happens to be a 3.5X speedup in a DOM-heavy GC test (scratch-gc-dom2.html).
2100
2101         * bindings/js/DOMWrapperWorld.cpp:
2102         (WebCore::isObservable):
2103         (WebCore::isReachableFromDOM): Moved a helper function from JSDOMBinding.
2104         We use this function to determine whether a node is observable.
2105
2106         (WebCore::JSNodeHandleOwner::isReachableFromOpaqueRoots): Start using
2107         our weak handle callback to determine reachability, instead of direct
2108         marking traversal through the DOM.
2109
2110         * bindings/js/JSAttrCustom.cpp:
2111         (WebCore::JSAttr::markChildren): Updated to use the opaque roots mechanism
2112         instead of direct marking.
2113
2114         * bindings/js/JSDOMBinding.cpp:
2115         * bindings/js/JSDOMBinding.h: Moved code mentioned above. Removed
2116         markDOMNodeWrapper because it is now unused. This is a good thing because
2117         markDOMNodeWrapper used deprecatedAppend, which is not compatible
2118         with generational GC.
2119
2120         * bindings/js/JSDOMImplementationCustom.cpp:
2121         (WebCore::JSDOMImplementation::markChildren): Updated to use opaque roots.
2122
2123         * bindings/js/JSDocumentCustom.cpp:
2124         (WebCore::JSDocument::markChildren): No need to mark our child nodes directly,
2125         since they will take care of themselves through the opaque roots mechanism.
2126
2127         * bindings/js/JSNamedNodeMapCustom.cpp:
2128         (WebCore::JSNamedNodeMap::markChildren): Updated to use opaque roots.
2129
2130         * bindings/js/JSNodeCustom.cpp:
2131         (WebCore::JSNode::markChildren): No need to mark our tree or our document
2132         directly, since they will take care of themselves through the opaque
2133         roots mechanism.
2134
2135         * bindings/js/JSNodeCustom.h:
2136         (WebCore::root): Helper function for accessing the root of a node tree.
2137         This is O(1) while you're in the document, O(log(N)) when you're in a
2138         reasonably balanced disconnected tree, and O(N) in the pathological case
2139         of a disconnected tree that's shaped like a linked list. If average case
2140         O(long(N)) turns out to be too slow, we can optimize through use of
2141         rare data or an external hash table, but it is so uncommon that I have
2142         ignored it for now.
2143
2144         * bindings/js/JSSVGElementInstanceCustom.cpp:
2145         (WebCore::JSSVGElementInstance::markChildren): Updated to use opaque roots.
2146
2147 2011-04-14  Mike Reed  <reed@google.com>
2148
2149         Reviewed by Kenneth Russell.
2150
2151         fix shadows with gradients
2152         https://bugs.webkit.org/show_bug.cgi?id=58376
2153
2154         No new tests. Existing tests exercise this
2155         LayoutTests/fast/canvas/canvas-fillPath-gradient-shadow.html
2156
2157         * platform/graphics/skia/GraphicsContextSkia.cpp:
2158         (WebCore::GraphicsContext::setPlatformShadow):
2159
2160 2011-04-14  Vsevolod Vlasov  <vsevik@chromium.org>
2161
2162         Reviewed by Pavel Feldman.
2163
2164         Web Inspector: No headers information in network panel for downloads.
2165         https://bugs.webkit.org/show_bug.cgi?id=58139
2166
2167         Passed resource response to inspector for PolicyDownload and PolicyIgnore requests.
2168
2169         Test: http/tests/inspector/network/download.html
2170
2171         * inspector/InspectorInstrumentation.cpp:
2172         (WebCore::InspectorInstrumentation::didReceiveResourceResponseButCanceledImpl):
2173         (WebCore::InspectorInstrumentation::continueWithPolicyDownloadImpl):
2174         (WebCore::InspectorInstrumentation::continueWithPolicyIgnoreImpl):
2175         * inspector/InspectorInstrumentation.h:
2176         (WebCore::InspectorInstrumentation::continueWithPolicyDownload):
2177         (WebCore::InspectorInstrumentation::continueWithPolicyIgnore):
2178         * loader/MainResourceLoader.cpp:
2179         (WebCore::MainResourceLoader::continueAfterContentPolicy):
2180
2181 2011-04-14  Joone Hur  <joone.hur@collabora.co.uk>
2182
2183         Reviewed by Martin Robinson.
2184
2185         Convert use of raw pointers to RefPtr in using Cairo
2186         https://bugs.webkit.org/show_bug.cgi?id=57717
2187
2188         No new tests added becaue of just replacing raw pointers with smart pointers.
2189
2190         * platform/graphics/cairo/ContextShadowCairo.cpp: Use a RefPtr<cairo_surface_t> instead of raw pointer.
2191         (WebCore::purgeScratchBuffer):
2192         (WebCore::getScratchBuffer):
2193         * platform/graphics/cairo/ImageBufferCairo.cpp: Use a RefPtr<cairo_t> instead of raw pointer.
2194         (copySurface):
2195
2196 2011-04-14  Naoki Takano  <takano.naoki@gmail.com>
2197
2198         Reviewed by Eric Seidel.
2199
2200         [Chromium]Change menu list background fallback value to transparent to work background:none for HTML select tag.
2201         https://bugs.webkit.org/show_bug.cgi?id=57818
2202
2203         Test: fast/forms/select-background-none.html
2204
2205         This fix is only for Chromium on Linux. Chromium on Mac already works fine.
2206         But Windows has the same problem. This change doesn't include Windows part.
2207
2208         * rendering/RenderThemeChromiumLinux.cpp:
2209         (WebCore::RenderThemeChromiumLinux::paintMenuList): Change the default color to transparent.
2210
2211 2011-04-14  Luke Macpherson   <macpherson@chromium.org>
2212
2213         Reviewed by Dimitri Glazkov.
2214
2215         Implement border style css properties in CSSStyleApplyProperty
2216         https://bugs.webkit.org/show_bug.cgi?id=58506
2217
2218         No new functionality added.
2219
2220         * css/CSSStyleApplyProperty.cpp:
2221         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2222         Added new property initializers.
2223
2224         * css/CSSStyleSelector.cpp:
2225         (WebCore::CSSStyleSelector::applyProperty):
2226         Removed old property handlers.
2227
2228 2011-04-14  Dimitri Glazkov  <dglazkov@chromium.org>
2229
2230         Reviewed by Ojan Vafai.
2231
2232         Presence of shadow DOM should suppress rendering of ordinary child nodes
2233         https://bugs.webkit.org/show_bug.cgi?id=58073
2234
2235         Test: fast/dom/shadow/no-renderers-for-light-children.html
2236
2237         * dom/Node.cpp:
2238         (WebCore::shadowRoot): Added a helper function.
2239         (WebCore::Node::setDocumentRecursively): Changed to use the helper.
2240         (WebCore::shouldCreateRendererFor): Expanded a long condition check into a helper function,
2241             added a check for children of an element with a shadow DOM.
2242         (WebCore::Node::createRendererAndStyle): Changed to use the helper.
2243
2244 2011-04-14  Adrienne Walker  <enne@google.com>
2245
2246         Reviewed by James Robinson.
2247
2248         [chromium] Tile content and image layers
2249         https://bugs.webkit.org/show_bug.cgi?id=57113
2250
2251         Layers tile by default if any dimension is larger than 512.  Smaller
2252         layers are contained within a single texture but still use the tiler
2253         infrastructure so that there's only one code path.
2254
2255         Remove large layer support from content layers.  Content layers no
2256         longer own a platform canvas--they own a tiler.  Refactor tiler to
2257         allow for better separation of update/upload/paint.  Add rect
2258         parameter to update and draw functions on layers for the layer-space
2259         rect of interest.  This is necessary to know which tiles need to be
2260         drawn.
2261
2262         * platform/graphics/chromium/ContentLayerChromium.cpp:
2263         (WebCore::ContentLayerChromium::ContentLayerChromium):
2264         (WebCore::ContentLayerChromium::~ContentLayerChromium):
2265         (WebCore::ContentLayerPainter::ContentLayerPainter):
2266         (WebCore::ContentLayerPainter::paint):
2267         (WebCore::ContentLayerChromium::paintContentsIfDirty):
2268         (WebCore::ContentLayerChromium::setLayerRenderer):
2269         (WebCore::ContentLayerChromium::tilingTransform):
2270         (WebCore::ContentLayerChromium::visibleLayerRect):
2271         (WebCore::ContentLayerChromium::layerBounds):
2272         (WebCore::ContentLayerChromium::updateLayerSize):
2273         (WebCore::ContentLayerChromium::draw):
2274         (WebCore::ContentLayerChromium::createTilerIfNeeded):
2275         (WebCore::ContentLayerChromium::updateCompositorResources):
2276         (WebCore::ContentLayerChromium::setTilingOption):
2277         (WebCore::ContentLayerChromium::bindContentsTexture):
2278         (WebCore::ContentLayerChromium::unreserveContentsTexture):
2279         (WebCore::ContentLayerChromium::setIsMask):
2280         (WebCore::ContentLayerChromium::dumpLayerProperties):
2281         * platform/graphics/chromium/ContentLayerChromium.h:
2282         (WebCore::ContentLayerChromium::drawsContent):
2283         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
2284         (WebCore::GraphicsLayerChromium::setMaskLayer):
2285         * platform/graphics/chromium/ImageLayerChromium.cpp:
2286         (WebCore::ImageLayerChromium::paintContentsIfDirty):
2287         (WebCore::ImageLayerChromium::updateCompositorResources):
2288         (WebCore::ImageLayerChromium::layerBounds):
2289         (WebCore::ImageLayerChromium::tilingTransform):
2290         * platform/graphics/chromium/ImageLayerChromium.h:
2291         * platform/graphics/chromium/LayerChromium.h:
2292         (WebCore::LayerChromium::invalidateRect):
2293         (WebCore::LayerChromium::paintContentsIfDirty):
2294         (WebCore::LayerChromium::setIsMask):
2295         (WebCore::LayerChromium::draw):
2296         * platform/graphics/chromium/LayerRendererChromium.cpp:
2297         (WebCore::LayerRendererChromium::drawRootLayer):
2298         (WebCore::LayerRendererChromium::drawLayers):
2299         (WebCore::LayerRendererChromium::paintContentsRecursive):
2300         (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay):
2301         (WebCore::LayerRendererChromium::drawLayer):
2302         (WebCore::LayerRendererChromium::initializeSharedObjects):
2303         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2304         * platform/graphics/chromium/LayerRendererChromium.h:
2305         * platform/graphics/chromium/LayerTilerChromium.cpp:
2306         (WebCore::LayerTilerChromium::setTileSize):
2307         (WebCore::LayerTilerChromium::getSingleTexture):
2308         (WebCore::LayerTilerChromium::invalidateRect):
2309         (WebCore::LayerTilerChromium::update):
2310         (WebCore::LayerTilerChromium::uploadCanvas):
2311         (WebCore::LayerTilerChromium::updateFromPixels):
2312         (WebCore::LayerTilerChromium::draw):
2313         (WebCore::LayerTilerChromium::unreserveTextures):
2314         * platform/graphics/chromium/LayerTilerChromium.h:
2315         (WebCore::LayerTilerChromium::setLayerRenderer):
2316         (WebCore::LayerTilerChromium::skipsDraw):
2317         * platform/graphics/chromium/PlatformCanvas.cpp:
2318         (WebCore::PlatformCanvas::AutoLocker::AutoLocker):
2319         (WebCore::PlatformCanvas::Painter::Painter):
2320         * platform/graphics/chromium/PlatformCanvas.h:
2321         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
2322         (WebCore::RenderSurfaceChromium::draw):
2323         * platform/graphics/chromium/RenderSurfaceChromium.h:
2324         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
2325         (WebCore::CCCanvasLayerImpl::draw):
2326         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
2327         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2328         (WebCore::CCHeadsUpDisplay::draw):
2329         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2330         (WebCore::CCLayerImpl::draw):
2331         * platform/graphics/chromium/cc/CCLayerImpl.h:
2332         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
2333         (WebCore::CCPluginLayerImpl::draw):
2334         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
2335         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
2336         (WebCore::CCVideoLayerImpl::draw):
2337         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
2338
2339 2011-04-14  James Robinson  <jamesr@chromium.org>
2340
2341         Reviewed by Darin Fisher.
2342
2343         [chromium] REGRESSION(83820): Composited scrollbar layers sometimes not positioned when initially creating frame
2344         https://bugs.webkit.org/show_bug.cgi?id=58575
2345
2346         Tell the RenderLayerCompositor to create/destroy composited layers for overflow controls on a FrameView when visibleContentsResized()
2347         is called, not contentsResized() so that we always update layers when adding or removing scrollbars.
2348
2349         Covered by several chromium pixel tests.
2350
2351         * page/FrameView.cpp:
2352         (WebCore::FrameView::contentsResized):
2353         (WebCore::FrameView::visibleContentsResized):
2354
2355 2011-04-07  David Levin  <levin@chromium.org>
2356
2357         Reviewed by Brady Eidson.
2358
2359         Fix some threading issues in IconDatabase.
2360         https://bugs.webkit.org/show_bug.cgi?id=57985
2361
2362         No functionality change so no new tests. It would be very hard to test this, but
2363         I am working on a change for bug 31639 to detect these (which makes layout tests
2364         fail for at least one of these issues).
2365
2366         * loader/icon/IconDatabase.cpp:
2367         (WebCore::IconDatabase::setIconDataForIconURL): Release imageData so that it won't get deref'ed outside of locks.
2368         (WebCore::IconDatabase::readFromDatabase): Ditto.
2369         (WebCore::IconDatabase::writeToDatabase): Acquire m_urlAndIconLock because the SharedBuffer<> data
2370         is used, and this lock seems to be the one which consistently guards it.
2371
2372 2011-04-14  Dmitry Titov  <dimich@chromium.org>
2373
2374         Reviewed by David Levin.
2375
2376         Simplifying Worker termination sequence (removing unnecessary mutex)
2377         https://bugs.webkit.org/show_bug.cgi?id=57090
2378
2379         No new tests. Existing Worker tests should pass.
2380
2381         * bindings/js/JSEventListener.cpp:
2382         (WebCore::JSEventListener::handleEvent):
2383         Check for Terminator-caused exception (or Terminator::shouldTerminate since sometimes
2384         JS might not run significant enough chunk to be terminated by Terminator) and set
2385         the flag to forbid future reentry into JS.
2386
2387         * bindings/js/WorkerScriptController.cpp:
2388         (WebCore::WorkerScriptController::evaluate):
2389         (WebCore::WorkerScriptController::scheduleExecutionTermination):
2390         (WebCore::WorkerScriptController::forbidExecution):
2391         (WebCore::WorkerScriptController::isExecutionForbidden):
2392         * bindings/js/WorkerScriptController.h:
2393         * bindings/v8/WorkerScriptController.cpp:
2394         (WebCore::WorkerScriptController::evaluate):
2395         (WebCore::WorkerScriptController::scheduleExecutionTermination):
2396         (WebCore::WorkerScriptController::forbidExecution):
2397         (WebCore::WorkerScriptController::isExecutionForbidden):
2398         * bindings/v8/WorkerScriptController.h:
2399         (WebCore::WorkerScriptController::proxy):
2400         Symmetrical changes to JSC and V8 WorkerScriptControllers:
2401         - remove Mutex around operations with executionForbidden flag.
2402         - set/check that flag only on Worker thread.
2403         - some renaming in attempt to better reflect what the methods do.
2404
2405         * bindings/v8/V8AbstractEventListener.cpp:
2406         (WebCore::V8AbstractEventListener::handleEvent):
2407         (WebCore::V8AbstractEventListener::invokeEventHandler):
2408         * bindings/v8/WorkerContextExecutionProxy.cpp:
2409         (WebCore::WorkerContextExecutionProxy::evaluate):
2410         Check for v8::TryCatch::CanContinue() and set forbidExecution flag.
2411         This result indicates that TerminateExecution() was in effect - we should
2412         not reenter V8 anymore after that.
2413
2414         * dom/Document.h:
2415         (WebCore::Document::isJSExecutionForbidden):
2416         * dom/MessagePort.cpp:
2417         (WebCore::MessagePort::dispatchMessages):
2418         Stop dispatching messages once the worker context started to close.
2419         Per Workers spec, once WorkerGlobalScope.Close() is called, the next
2420         JS execution does not happen, including onmessage events. Before this
2421         change, Close() was setting the forbidExecution flag, indirectly stopping
2422         events from dispatching.
2423
2424         * dom/ScriptExecutionContext.h:
2425         * workers/WorkerContext.cpp:
2426         (WebCore::WorkerContext::close):
2427         (WebCore::WorkerContext::isJSExecutionForbidden):
2428         * workers/WorkerContext.h:
2429         * workers/WorkerThread.cpp:
2430         (WebCore::WorkerThread::workerThread):
2431         (WebCore::WorkerThread::stop):
2432
2433 2011-04-14  Beth Dakin  <bdakin@apple.com>
2434
2435         Reviewed by Simon Fraser.
2436
2437         https://bugs.webkit.org/show_bug.cgi?id=56493
2438         Drag-scrolling overlay scrollbars thumb in overflow regions does not work
2439         -and corresponding-
2440         <rdar://problem/9112688>
2441
2442         There was an original change to fix this in the normal hit-testing case, but hit 
2443         testing of transformed and/or positioned objects was still broken. The transformed 
2444         case is fixed by sending an OverlayScrollbarSizeRelevancy parameter to 
2445         calculateRects(). Getting positioned objects right is a little trickier. Those need 
2446         to opt into using temporary clip rects during hit testing. To avoid doing that when 
2447         it is not necessary, I added a new bit to ScrollView to track whether there are 
2448         currently overlay scrollbars painted in the view.
2449         * platform/ScrollView.cpp:
2450         (WebCore::ScrollView::ScrollView):
2451         (WebCore::ScrollView::wheelEvent):
2452         * platform/ScrollView.h:
2453         (WebCore::ScrollView::containsScrollableAreaWithOverlayScrollbars):
2454         (WebCore::ScrollView::setContainsScrollableAreaWithOverlayScrollbars):
2455         * rendering/RenderLayer.cpp:
2456         (WebCore::RenderLayer::paintOverflowControls):
2457         (WebCore::RenderLayer::hitTestLayer):
2458         (WebCore::RenderLayer::updateClipRects):
2459         (WebCore::RenderLayer::calculateClipRects):
2460         (WebCore::RenderLayer::parentClipRects):
2461         (WebCore::RenderLayer::backgroundClipRect):
2462         (WebCore::RenderLayer::calculateRects):
2463         * rendering/RenderLayer.h:
2464
2465 2011-04-14  Antti Koivisto  <antti@apple.com>
2466
2467         Reviewed by Oliver Hunt.
2468
2469         REGRESSION(r74107): Including svg format in @font-face rules makes Web Fonts fail to load
2470         https://bugs.webkit.org/show_bug.cgi?id=57766
2471         <rdar://problem/9232183>
2472
2473         Move the knowledge of whether to interpret a font as SVG from CachedFont to CSSFontFaceSource. This way
2474         we can try to interpret the same cached resource in multiple ways.
2475
2476         Test: fast/css/font-face-repeated-url.html
2477
2478         * css/CSSFontFaceSource.cpp:
2479         (WebCore::CSSFontFaceSource::CSSFontFaceSource):
2480         (WebCore::CSSFontFaceSource::getFontData):
2481         * css/CSSFontFaceSource.h:
2482         (WebCore::CSSFontFaceSource::setHasExternalSVGFont):
2483         * css/CSSFontSelector.cpp:
2484         (WebCore::CSSFontSelector::addFontFaceRule):
2485         * loader/cache/CachedFont.cpp:
2486         (WebCore::CachedFont::CachedFont):
2487         (WebCore::CachedFont::ensureCustomFontData):
2488         (WebCore::CachedFont::ensureSVGFontData):
2489
2490             Use TextResourceDecoder correctly.
2491
2492         (WebCore::CachedFont::getSVGFontById):
2493         * loader/cache/CachedFont.h:
2494         * svg/SVGFontFaceUriElement.cpp:
2495         (WebCore::SVGFontFaceUriElement::loadFont):
2496
2497 2011-04-14  Kenneth Russell  <kbr@google.com>
2498
2499         Reviewed by Dimitri Glazkov.
2500
2501         Enable building Web Audio with MKL in Chrome-branded builds
2502         https://bugs.webkit.org/show_bug.cgi?id=58561
2503
2504         Factored out MKL support into a separate GYP file that is
2505         incorporated in Chrome-branded builds. Changed how the FFTFrame
2506         implementations are pulled in and chosen so that all files can be
2507         unconditionally compiled.
2508
2509         Tested with both Chrome-branded build (incorporating MKL) and
2510         Chromium build (building just FFTFrameStub.cpp) on Linux.
2511
2512         * WebCore.gyp/WebCore.gyp:
2513         * platform/audio/fftw/FFTFrameFFTW.cpp:
2514         * platform/audio/mkl/FFTFrameMKL.cpp:
2515
2516 2011-04-14  Ragner Magalhaes  <ragner.magalhaes@openbossa.org>
2517
2518         Reviewed by Antonio Gomes.
2519
2520         [Qt] Web Inspector does not highlight elements
2521         https://bugs.webkit.org/show_bug.cgi?id=35125
2522
2523         We should call drawNodeHighlight() just if a highlighted node exists
2524         to avoid do save()/restore() on the Graphics Context unnecessarily.
2525
2526         Added highlightedNode() method to check if we need to call drawNodeHighlight()
2527         and only on this case do save()/restore() on the Graphics Context.
2528
2529         * inspector/InspectorAgent.h:
2530         (WebCore::InspectorAgent::highlightedNode):
2531
2532 2011-04-14  Adrienne Walker  <enne@google.com>
2533
2534         Reviewed by James Robinson.
2535
2536         [chromium] TilingData should return 1 tile when tile size is texture size.
2537         https://bugs.webkit.org/show_bug.cgi?id=58364
2538
2539         * platform/graphics/gpu/TilingData.cpp:
2540         (WebCore::computeNumTiles):
2541
2542 2011-04-14  Andy Estes  <aestes@apple.com>
2543
2544         Reviewed by Dan Bernstein.
2545
2546         REGRESSION (r72141): Acid3 rendering is not pixel perfect.
2547         https://bugs.webkit.org/show_bug.cgi?id=55734
2548         
2549         WebCore should render text with a 0px font size at 0px regardless of
2550         minimum font size settings. This is compatible with other browsers that
2551         have a minimum font size preference and ensures pixel-perfect rendering
2552         on Acid3.
2553
2554         Test: fast/text/zero-font-size.html
2555
2556         * css/CSSStyleSelector.cpp:
2557         (WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): If
2558         specifiedSize is 0, return specified size regardless of zoom factor or
2559         minimum font size.
2560
2561 2011-04-14  Matthew Delaney  <mdelaney@apple.com>
2562
2563         Reviewed by Simon Fraser.
2564
2565         Have canvas drawImageFromRect just redirect to use drawImage
2566         https://bugs.webkit.org/show_bug.cgi?id=58516
2567
2568         Test: fast/canvas/drawImageFromRect_withToDataURLAsSource.html
2569
2570         * html/canvas/CanvasRenderingContext2D.cpp:
2571         (WebCore::CanvasRenderingContext2D::drawImage):
2572         (WebCore::CanvasRenderingContext2D::drawImageFromRect):
2573         * html/canvas/CanvasRenderingContext2D.h:
2574
2575 2011-04-14  James Robinson  <jamesr@chromium.org>
2576
2577         Reviewed by Simon Fraser.
2578
2579         REGRESSION (r83820): Lots of compositing tests failing on Windows 7 Release (Tests)
2580         https://bugs.webkit.org/show_bug.cgi?id=58535
2581
2582         Change PLATFORM(MAC) guards to !PLATFORM(CHROMIUM) so they apply correctly to the windows build.
2583
2584         * rendering/RenderLayerBacking.cpp:
2585         (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
2586         (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
2587         (WebCore::RenderLayerBacking::requiresScrollCornerLayer):
2588         * rendering/RenderLayerCompositor.cpp:
2589         (WebCore::shouldCompositeOverflowControls):
2590
2591 2011-04-14  Jian Li  <jianli@chromium.org>
2592
2593         Reviewed by Darin Fisher.
2594
2595         BlobBuilder should be vendor-prefixed
2596         https://bugs.webkit.org/show_bug.cgi?id=58518
2597
2598         Renamed BlobBuilder to WebKitBlobBuilder.
2599
2600         * Android.derived.jscbindings.mk:
2601         * Android.derived.v8bindings.mk:
2602         * CMakeLists.txt:
2603         * CodeGenerators.pri:
2604         * DerivedSources.cpp:
2605         * DerivedSources.make:
2606         * GNUmakefile.list.am:
2607         * WebCore.gypi:
2608         * WebCore.pro:
2609         * WebCore.vcproj/WebCore.vcproj:
2610         * WebCore.xcodeproj/project.pbxproj:
2611         * fileapi/WebKitBlobBuilder.cpp: Renamed from Source/WebCore/fileapi/BlobBuilder.cpp.
2612         (WebCore::WebKitBlobBuilder::WebKitBlobBuilder):
2613         (WebCore::WebKitBlobBuilder::getBuffer):
2614         (WebCore::WebKitBlobBuilder::append):
2615         (WebCore::WebKitBlobBuilder::getBlob):
2616         * fileapi/WebKitBlobBuilder.h: Renamed from Source/WebCore/fileapi/BlobBuilder.h.
2617         (WebCore::WebKitBlobBuilder::create):
2618         * fileapi/WebKitBlobBuilder.idl: Renamed from Source/WebCore/fileapi/BlobBuilder.idl.
2619         * page/DOMWindow.idl:
2620         * workers/WorkerContext.idl:
2621
2622 2011-04-14  Adam Barth  <abarth@webkit.org>
2623
2624         Remove some trailing whitespace.  I'm making this change to initialize
2625         the SVN credentials on a new commit-queue machine.  I'm sure there's a
2626         better way to do this, but I don't know it.
2627
2628         * dom/Document.cpp:
2629         (WebCore::Document::Document):
2630
2631 2011-04-14  Pratik Solanki  <psolanki@apple.com>
2632
2633         Reviewed by David Kilzer.
2634
2635         Set minimum priority for fast lane connections
2636         https://bugs.webkit.org/show_bug.cgi?id=58353
2637
2638         * WebCore.exp.in:
2639         * platform/mac/WebCoreSystemInterface.h:
2640         * platform/mac/WebCoreSystemInterface.mm:
2641         * platform/network/cf/ResourceRequestCFNet.cpp:
2642         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Call
2643         wkSetHTTPPipeliningMinimumFastLanePriority to allow javascript resources to use the fast
2644         lane connections.
2645
2646 2011-04-14  Kenneth Russell  <kbr@google.com>
2647
2648         Reviewed by Dimitri Glazkov.
2649
2650         Fix Web Audio build on Linux Debug and with stub FFTFrame
2651         https://bugs.webkit.org/show_bug.cgi?id=58555
2652
2653         Built Chromium/Linux in Debug mode to test.
2654
2655         * platform/audio/FFTFrame.cpp:
2656         * platform/audio/FFTFrameStub.cpp:
2657         (WebCore::FFTFrame::initialize):
2658         * webaudio/AudioContext.cpp:
2659         * webaudio/DefaultAudioDestinationNode.cpp:
2660
2661 2011-04-14  Yury Semikhatsky  <yurys@chromium.org>
2662
2663         Reviewed by Pavel Feldman.
2664
2665         [v8] Web Inspector: add initial implementation of WorkerScriptDebugServer
2666         https://bugs.webkit.org/show_bug.cgi?id=58552
2667
2668         * bindings/v8/DebuggerScript.js:
2669         * bindings/v8/WorkerContextExecutionProxy.cpp:
2670         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): each worker context
2671         now have a debug id (similar to frame contexts).
2672         * bindings/v8/WorkerScriptDebugServer.cpp:
2673         (WebCore::retrieveWorkerContext):
2674         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
2675         (WebCore::WorkerScriptDebugServer::addListener):
2676         (WebCore::WorkerScriptDebugServer::removeListener):
2677         (WebCore::WorkerScriptDebugServer::getDebugListenerForContext):
2678         (WebCore::WorkerScriptDebugServer::runMessageLoopOnPause): run message loop until
2679         debugger command is received and execution is resumed.
2680         (WebCore::WorkerScriptDebugServer::quitMessageLoopOnPause):
2681         * bindings/v8/WorkerScriptDebugServer.h:
2682         * inspector/WorkerDebuggerAgent.cpp:
2683         (WebCore::WorkerDebuggerAgent::startListeningScriptDebugServer):
2684         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer):
2685
2686 2011-04-14  Jian Li  <jianli@chromium.org>
2687
2688         Reviewed by Darin Fisher.
2689
2690         Add webkit prefix to Blob.slice method and change its semantics to be
2691         like Array.slice
2692         https://bugs.webkit.org/show_bug.cgi?id=58496
2693
2694         Renamed Blob.slice to blob.webkitSlice and made it take start and end
2695         parameters that're like Array.slice.
2696
2697         Test: fast/files/blob-slice-test.html
2698
2699         * fileapi/Blob.cpp:
2700         (WebCore::Blob::webkitSlice):
2701         * fileapi/Blob.h:
2702         * fileapi/Blob.idl:
2703
2704 2011-04-14  Andreas Kling  <kling@webkit.org>
2705
2706         Reviewed by Benjamin Poulain.
2707
2708         [Qt] Height of "Ahem" font differs from all other ports.
2709         https://bugs.webkit.org/show_bug.cgi?id=57954
2710
2711         QFontMetricsF::descent() returns the actual descent minus 1,
2712         to account for the baseline. Add it back to get correct metrics
2713         for WebKit.
2714
2715         QFontMetricsF::leading() may return negative values on some
2716         platforms (those using FreeType), this breaks WebKit's assumption
2717         that lineSpacing >= (ascent + descent), so we work around this in
2718         the same fashion as SimpleFontDataFreeType and SimpleFontDataPango.
2719
2720         This is covered by thousands of layout tests.
2721
2722         * platform/graphics/qt/SimpleFontDataQt.cpp:
2723         (WebCore::SimpleFontData::platformInit):
2724
2725 2011-04-14  Kevin Ollivier  <kevino@theolliviers.com>
2726
2727         [wx] Unreviewed build fixes for wxMSW and wx 2.9.1.1.
2728
2729         * platform/graphics/wx/FontPlatformDataWx.cpp:
2730         (WebCore::FontPlatformData::FontPlatformData):
2731         * platform/wx/FileSystemWx.cpp:
2732         (WebCore::writeToFile):
2733
2734 2011-04-14  Anders Carlsson  <andersca@apple.com>
2735
2736         Fix build.
2737
2738         RuntimeApplicationChecks.h needs to be a private header so WebKit can find it.
2739
2740         * WebCore.xcodeproj/project.pbxproj:
2741
2742 2011-04-14  Pavel Podivilov  <podivilov@chromium.org>
2743
2744         Unreviewed, build fix for r83864.
2745
2746         * inspector/front-end/DOMAgent.js:
2747         (WebInspector.DOMAgent.prototype._childNodeRemoved):
2748
2749 2011-04-14  Alexander Pavlov  <apavlov@chromium.org>
2750
2751         Reviewed by Pavel Feldman.
2752
2753         Web Inspector: Content area highlight does not cover scrollbars
2754         https://bugs.webkit.org/show_bug.cgi?id=58528
2755
2756         * inspector/DOMNodeHighlighter.cpp:
2757         (WebCore::DOMNodeHighlighter::DrawNodeHighlight):
2758
2759 2011-04-14  Pavel Podivilov  <podivilov@chromium.org>
2760
2761         Reviewed by Pavel Feldman.
2762
2763         Web Inspector: re-implement dom breakpoints.
2764         https://bugs.webkit.org/show_bug.cgi?id=57038
2765
2766         * WebCore.gypi:
2767         * WebCore.vcproj/WebCore.vcproj:
2768         * inspector/front-end/BreakpointManager.js: Removed.
2769         * inspector/front-end/BreakpointsSidebarPane.js:
2770         (WebInspector.NativeBreakpointsSidebarPane):
2771         (WebInspector.NativeBreakpointsSidebarPane.prototype._reset):
2772         (WebInspector.XHRBreakpointsSidebarPane.prototype._restoreBreakpoints):
2773         * inspector/front-end/CallStackSidebarPane.js:
2774         (WebInspector.CallStackSidebarPane.prototype.update):
2775         (WebInspector.CallStackSidebarPane.prototype.setStatus):
2776         * inspector/front-end/DOMAgent.js:
2777         (WebInspector.DOMNode):
2778         (WebInspector.DOMAgent.prototype._childNodeRemoved):
2779         * inspector/front-end/DOMBreakpointsSidebarPane.js: Added.
2780         (WebInspector.DOMBreakpointsSidebarPane):
2781         (WebInspector.DOMBreakpointsSidebarPane.prototype.setInspectedURL):
2782         (WebInspector.DOMBreakpointsSidebarPane.prototype.populateNodeContextMenu.toggleBreakpoint):
2783         (WebInspector.DOMBreakpointsSidebarPane.prototype.populateNodeContextMenu):
2784         (WebInspector.DOMBreakpointsSidebarPane.prototype.createBreakpointHitStatusMessage.didPushNodeToFrontend):
2785         (WebInspector.DOMBreakpointsSidebarPane.prototype.createBreakpointHitStatusMessage):
2786         (WebInspector.DOMBreakpointsSidebarPane.prototype._doCreateBreakpointHitStatusMessage.formatters.s):
2787         (WebInspector.DOMBreakpointsSidebarPane.prototype._doCreateBreakpointHitStatusMessage.append):
2788         (WebInspector.DOMBreakpointsSidebarPane.prototype._doCreateBreakpointHitStatusMessage):
2789         (WebInspector.DOMBreakpointsSidebarPane.prototype.nodeRemoved):
2790         (WebInspector.DOMBreakpointsSidebarPane.prototype._removeBreakpointsForNode):
2791         (WebInspector.DOMBreakpointsSidebarPane.prototype._setBreakpoint):
2792         (WebInspector.DOMBreakpointsSidebarPane.prototype._removeBreakpoint):
2793         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu.removeBreakpoint):
2794         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
2795         (WebInspector.DOMBreakpointsSidebarPane.prototype._checkboxClicked):
2796         (WebInspector.DOMBreakpointsSidebarPane.prototype.highlightBreakpoint):
2797         (WebInspector.DOMBreakpointsSidebarPane.prototype.clearBreakpointHighlight):
2798         (WebInspector.DOMBreakpointsSidebarPane.prototype._createBreakpointId):
2799         (WebInspector.DOMBreakpointsSidebarPane.prototype._saveBreakpoints):
2800         (WebInspector.DOMBreakpointsSidebarPane.prototype.restoreBreakpoints):
2801         * inspector/front-end/ElementsPanel.js:
2802         (WebInspector.ElementsPanel):
2803         (WebInspector.ElementsPanel.prototype.show):
2804         (WebInspector.ElementsPanel.prototype.updateModifiedNodes):
2805         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes.coalesceCollapsedCrumbs):
2806         * inspector/front-end/ElementsTreeOutline.js:
2807         (WebInspector.ElementsTreeElement.prototype._populateTagContextMenu):
2808         * inspector/front-end/ScriptsPanel.js:
2809         (WebInspector.ScriptsPanel):
2810         (WebInspector.ScriptsPanel.prototype.show):
2811         (WebInspector.ScriptsPanel.prototype._debuggerPaused.didCreateBreakpointHitStatusMessage):
2812         (WebInspector.ScriptsPanel.prototype._debuggerPaused.else.didGetSourceLocation):
2813         (WebInspector.ScriptsPanel.prototype._debuggerPaused):
2814         (WebInspector.ScriptsPanel.prototype._clearInterface):
2815         * inspector/front-end/Settings.js:
2816         (WebInspector.Settings):
2817         (WebInspector.Settings.prototype._set):
2818         * inspector/front-end/WebKit.qrc:
2819         * inspector/front-end/inspector.html:
2820         * inspector/front-end/inspector.js:
2821         (WebInspector.inspectedURLChanged):
2822         * inspector/front-end/utilities.js:
2823         ():
2824
2825 2011-04-14  Satish Sampath  <satish@chromium.org>
2826
2827         Reviewed by Kent Tamura.
2828
2829         Disable speech input for readonly and disabled input fields.
2830         https://bugs.webkit.org/show_bug.cgi?id=58540
2831
2832         Test: fast/speech/input-readonly-and-disabled.html
2833
2834         * html/shadow/TextControlInnerElements.cpp:
2835         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
2836         (WebCore::InputFieldSpeechButtonElement::setRecognitionResult):
2837
2838 2011-04-14  Ilya Tikhonovsky  <loislo@chromium.org>
2839
2840         Unreviewed. Rollout r83849 and r83857.
2841
2842         * inspector/Inspector.json:
2843         * inspector/InspectorDatabaseAgent.cpp:
2844         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
2845         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
2846         (WebCore::InspectorDatabaseAgent::setFrontend):
2847         (WebCore::InspectorDatabaseAgent::clearFrontend):
2848         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
2849         (WebCore::InspectorDatabaseAgent::executeSQL):
2850         * inspector/InspectorDatabaseAgent.h:
2851         * inspector/front-end/inspector.js:
2852
2853 2011-04-14  Dimitri Glazkov  <dglazkov@chromium.org>
2854
2855         Unreviewed, rolling out r83847.
2856         http://trac.webkit.org/changeset/83847
2857         https://bugs.webkit.org/show_bug.cgi?id=58477
2858
2859         Chromium media controls do use button borders, so this change
2860         is incorrect.
2861
2862         * css/mediaControls.css:
2863         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
2864         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2865         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
2866         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2867         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
2868         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
2869         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
2870         (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
2871         (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
2872         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
2873         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
2874
2875 2011-04-14  Andrew Wason  <rectalogic@rectalogic.com>
2876
2877         Reviewed by Andreas Kling.
2878
2879         Fix GraphicsContext3DQt.cpp compilation warnings treated as errors
2880         https://bugs.webkit.org/show_bug.cgi?id=58478
2881
2882         No new tests.
2883
2884         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2885         (WebCore::GraphicsContext3DInternal::getProcAddress):
2886          Do not use deprecated QString constructor to avoid warning.
2887         (WebCore::GraphicsContext3D::reshape):
2888          Use parenthesis to avoid warning.
2889
2890 2011-04-14  Andrey Kosyakov  <caseq@chromium.org>
2891
2892         Unreviewed. Removed ScrollableArea::paintScrollCorner() added in r83820,
2893         as it breaks chromium clang build (shadowed by RenderLayer::paintScrollCorner()
2894         with a different signature)
2895
2896         * platform/ScrollableArea.h:
2897
2898 2011-04-14  Mikhail Naganov  <mnaganov@chromium.org>
2899
2900         Reviewed by Pavel Feldman.
2901
2902         Web Inspector: [Chromium] Ready to move detailed heap snapshots storage and processing into workers.
2903         https://bugs.webkit.org/show_bug.cgi?id=58534
2904
2905         * inspector/front-end/DetailedHeapshotGridNodes.js:
2906         (WebInspector.HeapSnapshotGenericObjectNode.prototype.get _countPercent):
2907         (WebInspector.HeapSnapshotDiffNode):
2908         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.diffCalculated):
2909         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff):
2910         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.baseIdsReceived):
2911         (WebInspector.HeapSnapshotDiffNode.prototype.calculateDiff.idsReceived):
2912         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider.createProvider):
2913         (WebInspector.HeapSnapshotDiffNode.prototype._createNodesProvider):
2914         (WebInspector.HeapSnapshotDiffNode.prototype.get data):
2915         * inspector/front-end/DetailedHeapshotView.js:
2916         (WebInspector.HeapSnapshotDiffDataGrid.prototype.setBaseDataSource):
2917         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived.addNodeIfNonZeroDiff):
2918         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren.baseAggregatesReceived.aggregatesReceived):
2919         (WebInspector.HeapSnapshotDiffDataGrid.prototype.populateChildren):
2920         * inspector/front-end/HeapSnapshot.js:
2921         (WebInspector.HeapSnapshot):
2922         (WebInspector.HeapSnapshot.prototype.dispose):
2923         (WebInspector.HeapSnapshot.prototype.nodeFieldValuesByIndex):
2924         (WebInspector.HeapSnapshot.prototype._numbersComparator):
2925         (WebInspector.HeapSnapshot.prototype.baseSnapshotHasNode):
2926         (WebInspector.HeapSnapshot.prototype.updateBaseNodeIds):
2927         (WebInspector.HeapSnapshotsDiff):
2928         (WebInspector.HeapSnapshotsDiff.prototype.set baseIds):
2929         (WebInspector.HeapSnapshotsDiff.prototype.set baseSelfSizes):
2930         (WebInspector.HeapSnapshotsDiff.prototype.calculate):
2931         * inspector/front-end/HeapSnapshotProxy.js:
2932         (WebInspector.HeapSnapshotProxy):
2933         (WebInspector.HeapSnapshotProxy.prototype.createDiff):
2934         (WebInspector.HeapSnapshotProxy.prototype.createEdgesProvider):
2935         (WebInspector.HeapSnapshotProxy.prototype.createNodesProvider):
2936         (WebInspector.HeapSnapshotProxy.prototype.dispose):
2937         (WebInspector.HeapSnapshotProxy.prototype.nodeFieldValuesByIndex):
2938         (WebInspector.HeapSnapshotProxy.prototype.pushBaseIds):
2939         (WebInspector.HeapSnapshotsDiffProxy):
2940         (WebInspector.HeapSnapshotsDiffProxy.prototype.calculate):
2941         (WebInspector.HeapSnapshotsDiffProxy.prototype.pushBaseIds):
2942         (WebInspector.HeapSnapshotsDiffProxy.prototype.pushBaseSelfSizes):
2943
2944 2011-04-14  Ilya Tikhonovsky  <loislo@chromium.org>
2945
2946         Reviewed by Pavel Feldman.
2947
2948         Web Inspector: The list of Database entries is empty if the page opens a database just before Web Inspector.
2949         https://bugs.webkit.org/show_bug.cgi?id=57833
2950
2951         * inspector/Inspector.json:
2952         * inspector/InspectorDatabaseAgent.cpp:
2953         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
2954         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
2955         (WebCore::InspectorDatabaseAgent::setFrontend):
2956         (WebCore::InspectorDatabaseAgent::enable):
2957         (WebCore::InspectorDatabaseAgent::disable):
2958         (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
2959         (WebCore::InspectorDatabaseAgent::executeSQL):
2960         * inspector/InspectorDatabaseAgent.h:
2961         * inspector/front-end/inspector.js:
2962
2963 2011-04-14  Alexander Pavlov  <apavlov@chromium.org>
2964
2965         Reviewed by Yury Semikhatsky.
2966
2967         Web Inspector: [Chromium] "Remove Breakpoint" menu item is absent in the DOM breakpoints sidebar pane
2968         https://bugs.webkit.org/show_bug.cgi?id=58530
2969
2970         * inspector/front-end/ElementsPanel.js:
2971
2972 2011-04-14  Alexis Menard  <alexis.menard@openbossa.org>
2973
2974         Reviewed by Dimitri Glazkov.
2975
2976         REGRESSION(r83397) [Qt] When clicking on the media elements they
2977         grow 2 pixels.
2978         https://bugs.webkit.org/show_bug.cgi?id=58477
2979
2980         Since r83397 the media controls elements are actual DOM elements.
2981         Therefore the global style-sheet applies to them. html.css defines
2982         input[type="button"]:active to be border-style: inset which means
2983         that when the buttons are active they grow by their border size.
2984
2985         * css/mediaControls.css:
2986         (audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
2987         (audio::-webkit-media-controls-play-button, video::-webkit-media-controls-play-button):
2988         (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline):
2989         (audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
2990         (audio::-webkit-media-controls-seek-back-button, video::-webkit-media-controls-seek-back-button):
2991         (audio::-webkit-media-controls-seek-forward-button, video::-webkit-media-controls-seek-forward-button):
2992         (audio::-webkit-media-controls-fullscreen-button, video::-webkit-media-controls-fullscreen-button):
2993         (audio::-webkit-media-controls-rewind-button, video::-webkit-media-controls-rewind-button):
2994         (audio::-webkit-media-controls-return-to-realtime-button, video::-webkit-media-controls-return-to-realtime-button):
2995         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
2996         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
2997
2998 2011-04-14  Diego Gonzalez  <diegohcg@webkit.org>
2999
3000         Reviewed by Kenneth Rohde Christiansen.
3001
3002         [Qt] Improve disable style for input elements in mobile theme
3003         https://bugs.webkit.org/show_bug.cgi?id=58480
3004
3005         * platform/qt/QtMobileWebStyle.cpp:
3006         (QtMobileWebStyle::drawControl):
3007         (QtMobileWebStyle::drawPrimitive):
3008         (QtMobileWebStyle::drawComplexControl):
3009
3010 2011-04-14  Pavel Feldman  <pfeldman@google.com>
3011
3012         Reviewed by Yury Semikhatsky.
3013
3014         Web Inspector: restore previous selection in Resources panel upon front-end reopen.
3015         https://bugs.webkit.org/show_bug.cgi?id=58533
3016
3017         * inspector/front-end/ResourceTreeModel.js:
3018         (WebInspector.ResourceTreeModel.prototype._processCachedResources):
3019         * inspector/front-end/ResourcesPanel.js:
3020         (WebInspector.ResourcesPanel.prototype._initDefaultSelection):
3021         (WebInspector.ResourcesPanel.prototype._populateResourceTree):
3022         (WebInspector.ResourcesPanel.prototype._cachedResourcesLoaded):
3023         * inspector/front-end/inspector.css:
3024         (#close-button-left, #close-button-right):
3025
3026 2011-04-14  Pavel Feldman  <pfeldman@google.com>
3027
3028         Reviewed by Yury Semikhatsky.
3029
3030         Web Inspector: implement incremental CSS free flow editing.
3031         https://bugs.webkit.org/show_bug.cgi?id=58529
3032
3033         * inspector/front-end/CSSStyleModel.js:
3034         (WebInspector.CSSStyleSheet.prototype.setText):
3035         * inspector/front-end/Resource.js:
3036         (WebInspector.Resource.prototype.isResourceRevision):
3037         (WebInspector.Resource.prototype.setContent):
3038         * inspector/front-end/ResourceView.js:
3039         (WebInspector.CSSSourceFrame.prototype.isContentEditable):
3040         (WebInspector.CSSSourceFrame.prototype.editContent):
3041         (WebInspector.CSSSourceFrame.prototype.endEditing.commitIncrementalEdit):
3042         (WebInspector.CSSSourceFrame.prototype.endEditing):
3043         * inspector/front-end/SourceFrame.js:
3044         (WebInspector.SourceFrame.prototype.commitEditing):
3045         (WebInspector.SourceFrame.prototype.editContent):
3046
3047 2011-04-14  Ilya Tikhonovsky  <loislo@chromium.org>
3048
3049         Reviewed by Pavel Feldman.
3050
3051         Web Inspector:Duplicated display of storage db when running Web SQL from an iframe.
3052         https://bugs.webkit.org/show_bug.cgi?id=57830
3053
3054         There was created a new InspectorDatabaseResource entry for every didOpenDatabase event.
3055         Moreover there is new WebCore::Database for each didOpenDatabase event.
3056         I decided to change the old instance of the Database to a new one if they both use the same file.
3057
3058         * inspector/InspectorDatabaseAgent.cpp:
3059         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
3060         (WebCore::InspectorDatabaseAgent::findByFileName):
3061         * inspector/InspectorDatabaseAgent.h:
3062         * inspector/InspectorDatabaseResource.h:
3063         (WebCore::InspectorDatabaseResource::setDatabase):
3064
3065 2011-04-14  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>
3066
3067         Reviewed by Dirk Schulze.
3068
3069         svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg crashes in Debug build
3070         https://bugs.webkit.org/show_bug.cgi?id=58525
3071
3072         A renderer is created even for those filter primitives
3073         which parent is not a filter. A rendererIsNeeded() is
3074         added to SVGFilterPrimitiveStandardAttributes.
3075
3076         Test: svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg
3077
3078         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3079         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
3080         * svg/SVGFilterPrimitiveStandardAttributes.h:
3081
3082 2011-04-14  Alexis Menard  <alexis.menard@openbossa.org>
3083
3084         Reviewed by Andreas Kling.
3085
3086         REGRESSION(r83397) [Qt] When the video is loading and the poster is shown
3087         all the controls are not visible except the play button.
3088         https://bugs.webkit.org/show_bug.cgi?id=58484
3089
3090         r83397 introduces a new API hasOwnDisabledStateHandlingFor to handle when
3091         the controls should be disabled. Qt port paints its own controls, we don't want
3092         the default implementation to handle the hidden/disable state for us.
3093
3094         Existing tests covers the visibility of the controls.
3095
3096         * platform/qt/RenderThemeQt.h:
3097         (WebCore::RenderThemeQt::hasOwnDisabledStateHandlingFor):
3098
3099 2011-04-14  Andreas Kling  <andreas.kling@nokia.com>
3100
3101         Reviewed by Kenneth Rohde Christiansen.
3102
3103         [Qt] Disabled form controls don't actually look disabled.
3104         https://bugs.webkit.org/show_bug.cgi?id=58490
3105
3106         Unsetting QStyle::State_Enabled is not enough to get the "disabled" appearance
3107         when painting controls. We must also set the QStyleOption's palette's current
3108         color group.
3109
3110         * platform/qt/RenderThemeQt.cpp:
3111         (WebCore::RenderThemeQt::initializeCommonQStyleOptions):
3112
3113 2011-04-14  Nancy Piedra  <nancy.piedra@nokia.com>
3114
3115         Reviewed by Benjamin Poulain.
3116
3117         [Qt] MediaPlayerPrivateQt::supportsType does not parse codec parameter
3118         https://bugs.webkit.org/show_bug.cgi?id=58188
3119
3120         The codec parameter in MediaPlayerPrivateQt::supportsType was not parsed into
3121         a QStringList. This change parses and trims the list.
3122
3123         An additional test was added to video-can-play-type.html to test parsing of codec parameter.
3124
3125         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
3126         (WebCore::MediaPlayerPrivateQt::supportsType):
3127
3128 2011-04-14  Zoltan Herczeg  <zherczeg@webkit.org>
3129
3130         Reviewed by Nikolas Zimmermann.
3131
3132         Optimizing lightning filter to ARM-NEON SIMD instruction set
3133         https://bugs.webkit.org/show_bug.cgi?id=54456
3134
3135         NEON is the SIMD instruction set for ARM. This instruction set
3136         allows to speed-up the lighting filter by 4 times on ARM
3137         (on WebCore/manual-tests/svg-filter-animation.svg).
3138
3139         * WebCore.pri:
3140         * WebCore.pro:
3141         * platform/graphics/filters/FELighting.cpp:
3142         (WebCore::FELighting::drawLighting):
3143         (WebCore::getPowerCoefficients):
3144         (WebCore::FELighting::drawInteriorPixels):
3145         * platform/graphics/filters/FELighting.h:
3146         * platform/graphics/filters/arm/FELightingNEON.cpp: Added.
3147         (__attribute__):
3148         * platform/graphics/filters/arm/FELightingNEON.h: Added.
3149
3150 2011-04-14  Jarkko Sakkinen  <jarkko.j.sakkinen@gmail.com>
3151
3152         Reviewed by Benjamin Poulain.
3153
3154         [Qt] GraphicsContext3D internal buffers are not freed
3155         https://bugs.webkit.org/show_bug.cgi?id=57530
3156
3157         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3158         (WebCore::GraphicsContext3DInternal::~GraphicsContext3DInternal):
3159
3160 2011-04-14  Andy Estes  <aestes@apple.com>
3161
3162         Reviewed by Maciej Stachowiak.
3163
3164         REGRESSION (r75555): Safari RSS sidebar jiggles when scrolling
3165         https://bugs.webkit.org/show_bug.cgi?id=52988
3166         
3167         Safari RSS relies on synchronous dispatch of ScrollEvent to update the
3168         position of its sidebar during scrolling without producing a jiggling
3169         effect. Due to r75555, this event is no longer dispatched synchronously
3170         which results in stale repaints before the onscroll handler gets a
3171         chance to update the position of the sidebar.
3172         
3173         Since it is impractical to resolve this issue in Safari RSS itself, add
3174         a quirk that restores synchronous ScrollEvent dispatch for Safari RSS.
3175         
3176         No tests. This is an app-specific change that doesn't affect web
3177         content.
3178
3179         * Android.mk: Add platform/RuntimeApplicationChecks.[cpp|h]
3180         * CMakeLists.txt: Ditto.
3181         * GNUmakefile.list.am: Ditto.
3182         * WebCore.gypi: Ditto.
3183         * WebCore.pro: Ditto.
3184         * WebCore.vcproj/WebCore.vcproj: Ditto.
3185         * WebCore.xcodeproj/project.pbxproj: Ditto.
3186         * dom/EventQueue.cpp:
3187         (WebCore::shouldDispatchScrollEventSynchronously): Send ScrollEvent
3188         synchronously if the embedding application is Safari and the document's
3189         URL scheme is "feed" or "feeds".
3190         (WebCore::EventQueue::enqueueOrDispatchScrollEvent): Dispatch
3191         ScrollEvent synchronously if shouldDispatchScrollEventSynchronously()
3192         returns true.
3193         * dom/EventQueue.h:
3194         * page/EventHandler.cpp:
3195         (WebCore::EventHandler::sendScrollEvent): Call enqueueOrDispatchScrollEvent().
3196         * platform/RuntimeApplicationChecks.cpp: Added.
3197         (WebCore::mainBundleIsEqualTo): Add a helper routine for CF platforms
3198         that checks if the main bundle's identifier is equal to a given string.
3199         This function returns false for non-CF platforms.
3200         (WebCore::applicationIsSafari): Call mainBundleIsEqualTo().
3201         (WebCore::applicationIsAppleMail): Ditto.
3202         (WebCore::applicationIsMicrosoftMessenger): Ditto.
3203         (WebCore::applicationIsAdobeInstaller): Ditto.
3204         (WebCore::applicationIsAOLInstantMessenger): Ditto.
3205         (WebCore::applicationIsMicrosoftMyDay): Ditto.
3206         (WebCore::applicationIsMicrosoftOutlook): Ditto.
3207         * platform/mac/RuntimeApplicationChecks.mm: Removed. Functions moved to
3208         RuntimeApplicationChecks.cpp.
3209         * rendering/RenderLayer.cpp:
3210         (WebCore::RenderLayer::scrollTo): Call enqueueOrDispatchScrollEvent().
3211         * rendering/RenderListBox.cpp:
3212         (WebCore::RenderListBox::scrollTo): Call enqueueOrDispatchScrollEvent().
3213
3214 2011-04-14  John Bates  <jbates@google.com>
3215
3216         Reviewed by Kenneth Russell.
3217
3218         Fix bug with adding wrong context to LayerRendererChromium and get rid of RefPtr loop.
3219         https://bugs.webkit.org/show_bug.cgi?id=58383
3220
3221         * platform/graphics/chromium/LayerRendererChromium.cpp:
3222         (WebCore::LayerRendererChromium::addChildContext):
3223         (WebCore::LayerRendererChromium::removeChildContext):
3224         * platform/graphics/chromium/LayerRendererChromium.h:
3225
3226 2011-04-14  Renata Hodovan  <reni@webkit.org>
3227
3228         Reviewed by Nikolas Zimmermann.
3229
3230         CSS related SVG*Element changes doesn't require relayout
3231         https://bugs.webkit.org/show_bug.cgi?id=56906
3232
3233         The changes of some CSS related SVGFilter properties e.g. lighting_color, flood_color, flood_opacity
3234         need only repaint. To avoid the default invalidation of filters in SVGResourceCache::clientStyleChange()
3235         we need an early return. So RenderSVGResourceFilterPrimitive::styleDidChange() can handle these properties
3236         via RenderSVGResourceFilter::primitiveAttributeChanged() the same way like we do it for the other SVGAttributes.
3237
3238         Tests: svg/dynamic-updates/SVGFEDiffuseLightingElement-inherit-lighting-color-css-prop.html
3239                svg/dynamic-updates/SVGFEFloodElement-inherit-flood-color.html
3240                svg/dynamic-updates/SVGFESpecularLightingElement-inherit-lighting-color-css-prop.html
3241                svg/dynamic-updates/SVGFESpecularLightingElement-lighting-color-css-prop.html
3242
3243         * platform/graphics/filters/FEFlood.cpp:
3244         (WebCore::FEFlood::setFloodColor):
3245         (WebCore::FEFlood::setFloodOpacity):
3246         * platform/graphics/filters/FEFlood.h:
3247         * platform/graphics/filters/FESpecularLighting.cpp:
3248         (WebCore::FESpecularLighting::setLightingColor):
3249         * platform/graphics/filters/FESpecularLighting.h:
3250         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
3251         (WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
3252         * rendering/svg/RenderSVGResourceFilterPrimitive.h:
3253         * rendering/svg/SVGResourcesCache.cpp:
3254         (WebCore::SVGResourcesCache::clientStyleChanged):
3255         * svg/SVGFEDiffuseLightingElement.cpp:
3256         (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute):
3257         * svg/SVGFEFloodElement.cpp:
3258         (WebCore::SVGFEFloodElement::setFilterEffectAttribute):
3259         * svg/SVGFEFloodElement.h:
3260         * svg/SVGFESpecularLightingElement.cpp:
3261         (WebCore::SVGFESpecularLightingElement::setFilterEffectAttribute):
3262
3263 2011-04-13  James Robinson  <jamesr@chromium.org>
3264
3265         Reviewed by Simon Fraser.
3266
3267         Allow setting composited backing stores for scrollbars and scroll corners
3268         https://bugs.webkit.org/show_bug.cgi?id=57202
3269
3270         This teaches ScrollableArea to manage GraphicsLayer backings for the two scrollbars and
3271         scroll corner. ScrollableArea can position the layers and route invalidation and paint calls to
3272         the correct place but depends on subclasses to manage the lifetime of the GraphicsLayers and
3273         place them into the correct place in the hierarchy.
3274
3275         FrameView and RenderLayerCompositor updated to provide layers for frames with overflow controls.
3276         that need them.  The overflow control layers are siblings of the frame's clip layer.
3277
3278         RenderLayer and RenderLayerBacking updated to provide overflow control layers for layers that
3279         need them.  Currently, layers are only created for overflow controls on layers that are already composited
3280         for other reasons and not necessarily for every RenderLayer with overflow.  Overflow control layers are siblings
3281         of the RenderLayerBacking's clipping layer if it exists, otherwise they are siblings of the layer's normal
3282         children.
3283
3284         Tested by a number of compositing/ tests that have scrollbars and by these new tests:
3285                compositing/iframes/repaint-after-losing-scrollbars.html
3286                compositing/overflow/clip-content-under-overflow-controls.html
3287                compositing/overflow/content-gains-scrollbars.html
3288                compositing/overflow/content-loses-scrollbars.html
3289                compositing/overflow/overflow-scrollbar-layers.html
3290                compositing/overflow/repaint-after-losing-scrollbars.html
3291
3292         * css/CSSStyleSelector.cpp:
3293         (WebCore::CSSStyleSelector::SelectorChecker::checkScrollbarPseudoClass):
3294         * page/FrameView.cpp:
3295         (WebCore::FrameView::layerForHorizontalScrollbar):
3296         (WebCore::FrameView::layerForVerticalScrollbar):
3297         (WebCore::FrameView::layerForScrollCorner):
3298         (WebCore::FrameView::syncCompositingStateForThisFrame):
3299         (WebCore::FrameView::contentsResized):
3300         (WebCore::FrameView::updateScrollCorner):
3301         * page/FrameView.h:
3302         * platform/ScrollView.cpp:
3303         (WebCore::ScrollView::wheelEvent):
3304         * platform/ScrollView.h:
3305         * platform/ScrollableArea.cpp:
3306         (WebCore::ScrollableArea::invalidateScrollbar):
3307         (WebCore::ScrollableArea::invalidateScrollCorner):
3308         * platform/ScrollableArea.h:
3309         (WebCore::ScrollableArea::paintScrollCorner):
3310         (WebCore::ScrollableArea::layerForHorizontalScrollbar):
3311         (WebCore::ScrollableArea::layerForVerticalScrollbar):
3312         (WebCore::ScrollableArea::layerForScrollCorner):
3313         * platform/Scrollbar.cpp:
3314         (WebCore::Scrollbar::invalidateRect):
3315         * platform/Scrollbar.h:
3316         * platform/ScrollbarThemeComposite.cpp:
3317         (WebCore::ScrollbarThemeComposite::paint):
3318         * platform/graphics/chromium/ContentLayerChromium.cpp:
3319         (WebCore::ContentLayerChromium::paintContentsIfDirty):
3320         * platform/graphics/chromium/LayerRendererChromium.cpp:
3321         (WebCore::LayerRendererChromium::create):
3322         (WebCore::LayerRendererChromium::LayerRendererChromium):
3323         (WebCore::LayerRendererChromium::invalidateRootLayerRect):
3324         (WebCore::LayerRendererChromium::drawRootLayer):
3325         (WebCore::LayerRendererChromium::setViewport):
3326         (WebCore::LayerRendererChromium::updateAndDrawLayers):
3327         (WebCore::LayerRendererChromium::updateLayers):
3328         (WebCore::LayerRendererChromium::setRootLayer):
3329         (WebCore::LayerRendererChromium::cleanupSharedObjects):
3330         * platform/graphics/chromium/LayerRendererChromium.h:
3331         * platform/mac/ScrollAnimatorMac.mm:
3332         (-[ScrollbarPartAnimation setCurrentProgress:]):
3333         * platform/win/PopupMenuWin.h:
3334         (WebCore::PopupMenuWin::invalidateScrollCornerRect):
3335         (WebCore::PopupMenuWin::isScrollCornerVisible):
3336         (WebCore::PopupMenuWin::scrollCornerRect):
3337         * rendering/RenderLayer.cpp:
3338         (WebCore::RenderLayer::scrollCornerRect):
3339         (WebCore::RenderLayer::scrollCornerAndResizerRect):
3340         (WebCore::RenderLayer::isScrollCornerVisible):
3341         (WebCore::RenderLayer::invalidateScrollbarRect):
3342         (WebCore::RenderLayer::invalidateScrollCornerRect):
3343         (WebCore::RenderLayer::positionOverflowControls):
3344         (WebCore::RenderLayer::paintOverflowControls):
3345         (WebCore::RenderLayer::paintScrollCorner):
3346         (WebCore::RenderLayer::layerForHorizontalScrollbar):
3347         (WebCore::RenderLayer::layerForVerticalScrollbar):
3348         (WebCore::RenderLayer::layerForScrollCorner):
3349         * rendering/RenderLayer.h:
3350         (WebCore::RenderLayer::horizontalScrollbar):
3351         (WebCore::RenderLayer::verticalScrollbar):
3352         * rendering/RenderLayerBacking.cpp:
3353         (WebCore::RenderLayerBacking::~RenderLayerBacking):
3354         (WebCore::RenderLayerBacking::updateAfterWidgetResize):
3355         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3356         (WebCore::RenderLayerBacking::updateInternalHierarchy):
3357         (WebCore::RenderLayerBacking::updateClippingLayers):
3358         (WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer):
3359         (WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer):
3360         (WebCore::RenderLayerBacking::requiresScrollCornerLayer):
3361         (WebCore::RenderLayerBacking::updateOverflowControlsLayers):
3362         (WebCore::paintScrollbar):
3363         (WebCore::RenderLayerBacking::paintContents):
3364         * rendering/RenderLayerBacking.h:
3365         (WebCore::RenderLayerBacking::layerForHorizontalScrollbar):
3366         (WebCore::RenderLayerBacking::layerForVerticalScrollbar):
3367         (WebCore::RenderLayerBacking::layerForScrollCorner):
3368         * rendering/RenderLayerCompositor.cpp:
3369         (WebCore::RenderLayerCompositor::updateCompositingLayers):
3370         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
3371         (WebCore::RenderLayerCompositor::frameViewDidChangeLocation):
3372         (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
3373         (WebCore::RenderLayerCompositor::rootPlatformLayer):
3374         (WebCore::RenderLayerCompositor::updateRootLayerPosition):
3375         (WebCore::paintScrollbar):
3376         (WebCore::RenderLayerCompositor::paintContents):
3377         (WebCore::shouldCompositeOverflowControls):
3378         (WebCore::RenderLayerCompositor::requiresHorizontalScrollbarLayer):
3379         (WebCore::RenderLayerCompositor::requiresVerticalScrollbarLayer):
3380         (WebCore::RenderLayerCompositor::requiresScrollCornerLayer):
3381         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
3382         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
3383         (WebCore::RenderLayerCompositor::destroyRootPlatformLayer):
3384         (WebCore::RenderLayerCompositor::detachRootPlatformLayer):
3385         * rendering/RenderLayerCompositor.h:
3386         (WebCore::RenderLayerCompositor::layerForHorizontalScrollbar):
3387         (WebCore::RenderLayerCompositor::layerForVerticalScrollbar):
3388         (WebCore::RenderLayerCompositor::layerForScrollCorner):
3389         * rendering/RenderListBox.h:
3390         (WebCore::RenderListBox::isScrollCornerVisible):
3391         (WebCore::RenderListBox::scrollCornerRect):
3392         (WebCore::RenderListBox::invalidateScrollCornerRect):
3393
3394 2011-04-13  Cary Clark  <caryclark@chromium.org>
3395  
3396          Reviewed by Eric Seidel.
3397           
3398          [Chromium] allow concurrent Skia and CG datatypes
3399          https://bugs.webkit.org/show_bug.cgi?id=57848
3400
3401          The Chromium port is experimenting with running Skia as the WebKit rendering engine, and CoreGraphics
3402          as the UI rendering engine. This permits Chromium to unify its graphics story while leveraging OS X to
3403          draw elements like scrollbars and buttons.
3404  
3405          Restructure the common graphics units, points, and rectangles, to convert to Sk-types and CG-types at
3406          the same time. This requires only adding to the existing preprocessor commands, and will have no effect
3407          on any existing platform.
3408          
3409          Eventually, WTF_USE_SKIA_ON_MAC_CHROME will be defined to enable this, but for now, there's no
3410          functional change.
3411  
3412          No new tests as this provides no new functionality.
3413  
3414          * platform/graphics/FloatPoint.h: Add USE(SKIA_ON_MAC_CHROME) to make CG type and operators visible
3415          to a Skia-based Chrome Mac build.
3416          * platform/graphics/FloatRect.h: Ditto.
3417          * platform/graphics/FloatSize.h: Ditto.
3418          * platform/graphics/IntPoint.h: Ditto.
3419          * platform/graphics/IntRect.h: Ditto.
3420          * platform/graphics/IntSize.h: Ditto.
3421          * platform/graphics/cg/FloatPointCG.cpp: Ditto.
3422          * platform/graphics/cg/FloatRectCG.cpp: Ditto.
3423          * platform/graphics/cg/FloatSizeCG.cpp: Ditto.
3424          * platform/graphics/cg/IntPointCG.cpp: Ditto.
3425          * platform/graphics/cg/IntRectCG.cpp: Ditto.
3426          * platform/graphics/cg/IntSizeCG.cpp: Ditto.
3427  
3428 2011-04-13  Roland Steiner  <rolandsteiner@chromium.org>
3429
3430         Reviewed by Dimitri Glazkov.
3431
3432         Bug 58460 - childTypeAllowed() should be const
3433         https://bugs.webkit.org/show_bug.cgi?id=58460
3434
3435         Made childTypeAllowed const.
3436
3437         No new tests. (minor refactoring).
3438
3439         * dom/Attr.cpp:
3440         (WebCore::Attr::childTypeAllowed):
3441         * dom/Attr.h:
3442         * dom/CDATASection.cpp:
3443         (WebCore::CDATASection::childTypeAllowed):
3444         * dom/CDATASection.h:
3445         * dom/Comment.cpp:
3446         (WebCore::Comment::childTypeAllowed):
3447         * dom/Comment.h:
3448         * dom/Document.cpp:
3449         (WebCore::Document::childTypeAllowed):
3450         * dom/Document.h:
3451         * dom/DocumentFragment.cpp:
3452         (WebCore::DocumentFragment::childTypeAllowed):
3453         * dom/DocumentFragment.h:
3454         * dom/Element.cpp:
3455         (WebCore::Element::childTypeAllowed):
3456         * dom/Element.h:
3457         * dom/Node.h:
3458         (WebCore::Node::childTypeAllowed):
3459         * dom/Notation.cpp:
3460         (WebCore::Notation::childTypeAllowed):
3461         * dom/Notation.h:
3462         * dom/ProcessingInstruction.cpp:
3463         (WebCore::ProcessingInstruction::childTypeAllowed):
3464         * dom/ProcessingInstruction.h:
3465         * dom/Text.cpp:
3466         (WebCore::Text::childTypeAllowed):
3467         * dom/Text.h:
3468
3469 2011-04-13  Jon Lee  <jonlee@apple.com>
3470
3471         Reviewed by Maciej Stachowiak.
3472
3473         REGRESSION(r81880): Paste menu is disabled for many edit fields (yahoo and google search, yahoo mail msg, forms, etc)
3474         https://bugs.webkit.org/show_bug.cgi?id=58284
3475         <rdar://problem/9246149>
3476
3477         * WebCore.exp.in: Exporting EditingBehavior.h for use in WebKit2
3478         * editing/EditingBehavior.h:
3479         (WebCore::EditingBehavior::shouldClearSelectionWhenLosingWebPageFocus): moving the platform-specific code out of an #ifdef and into this class for run-time instead of compile-time checking
3480
3481 2011-04-13  Yael Aharon  <yael.aharon@nokia.com>
3482
3483         Reviewed by Eric Seidel.
3484
3485         constructLine should take bidiRuns as a parameter
3486         https://bugs.webkit.org/show_bug.cgi?id=58458
3487
3488         Pass bidiRuns to constructLine and move reachedEndOfTextRenderer so that it is
3489         declared before constructLine.
3490
3491         No new tests as this is refactoring only.
3492
3493         * rendering/RenderBlock.h:
3494         * rendering/RenderBlockLineLayout.cpp:
3495         (WebCore::reachedEndOfTextRenderer):
3496         (WebCore::RenderBlock::constructLine):
3497         (WebCore::RenderBlock::layoutInlineChildren):
3498
3499 2011-04-13  Cary Clark  <caryclark@google.com>
3500
3501         Reviewed by Eric Seidel.
3502
3503         Allow CG Font support in Chrome Darwin build using Skia
3504         https://bugs.webkit.org/show_bug.cgi?id=58321
3505         
3506         This allows Chrome to use Skia to do WebKit rendering, while
3507         using CoreGraphics for glyph creation and computing font metrics.
3508         It relies on an undefined platform token, WTF_USE_SKIA_ON_MAC_CHROME.
3509
3510         No new tests needed, no functionality change.
3511
3512         * loader/cache/CachedFont.cpp: Make CGFontRef functions and
3513         CG-specific font code available to Chrome builds on Darwin using Skia.
3514         * platform/graphics/FontPlatformData.h: Ditto.
3515         (WebCore::FontPlatformData::hash): Ditto.
3516         * platform/graphics/GlyphBuffer.h: Ditto.
3517         (WebCore::GlyphBuffer::advanceAt): Ditto.
3518         (WebCore::GlyphBuffer::add): Ditto.
3519         (WebCore::GlyphBuffer::expandLastAdvance): Ditto.
3520         * platform/graphics/SimpleFontData.h: Ditto.
3521
3522 2011-04-13  Alexis Menard  <alexis.menard@openbossa.org>
3523
3524         Reviewed by Dimitri Glazkov.
3525
3526         The timeline of the video controls is unusable if the multimedia backend returns a