Implement a PageTransitionEvent constructor for JSC
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-14  Kentaro Hara  <haraken@google.com>
2
3         Implement a PageTransitionEvent constructor for JSC
4         https://bugs.webkit.org/show_bug.cgi?id=68048
5
6         Reviewed by Sam Weinig.
7
8         The spec for the PageTransitionEvent constructor is here:
9         http://www.whatwg.org/specs/web-apps/current-work/#pagetransitionevent
10
11         Test: fast/events/constructors/page-transition-event-constructor.html
12
13         * bindings/generic/EventConstructors.h: Added a definition for the PageTransitionEvent constructor.
14         * bindings/js/JSEventConstructors.cpp: Added #includes for PageTransitionEvent.
15         * dom/PageTransitionEvent.cpp:
16         (WebCore::PageTransitionEventInit::PageTransitionEventInit):
17         (WebCore::PageTransitionEvent::PageTransitionEvent):
18         (WebCore::PageTransitionEvent::initPageTransitionEvent):
19         * dom/PageTransitionEvent.h: Added a definition for PageTransitionEventInit.
20         (WebCore::PageTransitionEvent::create):
21         (WebCore::PageTransitionEvent::isPageTransitionEvent):
22         (WebCore::PageTransitionEvent::persisted):
23         * dom/PageTransitionEvent.idl: Makes PageTransitionEvent constructible.
24
25 2011-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
26
27         Unreviewed, rolling out r95058.
28         http://trac.webkit.org/changeset/95058
29         https://bugs.webkit.org/show_bug.cgi?id=68058
30
31         It made css3/calc/regression-62276.html crash (Requested by
32         Ossy on #webkit).
33
34         * css/CSSParser.cpp:
35         (WebCore::BorderImageParseContext::BorderImageParseContext):
36         (WebCore::BorderImageParseContext::allowBreak):
37         (WebCore::BorderImageParseContext::allowWidth):
38         (WebCore::BorderImageParseContext::allowOutset):
39         (WebCore::BorderImageParseContext::allowRepeat):
40         (WebCore::BorderImageParseContext::commitImage):
41         (WebCore::BorderImageParseContext::commitImageSlice):
42         (WebCore::BorderImageParseContext::commitSlash):
43         (WebCore::BorderImageParseContext::commitBorderWidth):
44         (WebCore::BorderImageParseContext::commitBorderOutset):
45         (WebCore::BorderImageParseContext::commitRepeat):
46         (WebCore::CSSParser::parseBorderImage):
47         (WebCore::CSSParser::parseBorderImageRepeat):
48         (WebCore::CSSParser::parseBorderImageSlice):
49         (WebCore::CSSParser::parseBorderImageQuad):
50         * css/CSSParserValues.h:
51
52 2011-09-13  Abhishek Arya  <inferno@chromium.org>
53
54         Crash in RenderScrollbarPart::imageChanged.
55         https://bugs.webkit.org/show_bug.cgi?id=68009
56
57         Reviewed by Simon Fraser.
58
59         When a custom scrollbar is removed from its FrameView, its destruction
60         can be delayed because of RefPtr maintained in EventHandler class
61         (m_lastScrollbarUnderMouse). Upon removal, we delete all the scrollbar
62         parts so that they don't link back to scrollbar. However, because of the
63         delay, we can have a call to updateScrollbarPart which recreates it.
64         When scrollbar is getting destroyed, we just check to see if there are
65         remaining scrollbar parts and if yes, we destroy them.
66
67         Test: scrollbars/scrollbar-part-created-with-no-parent-crash.html
68
69         * rendering/RenderScrollbar.cpp:
70         (WebCore::RenderScrollbar::~RenderScrollbar):
71
72 2011-09-13  Adam Klein  <adamk@chromium.org>
73
74         Fix cssText property of counter-valued CSSPrimitiveValue and avoid uninitialized read
75         https://bugs.webkit.org/show_bug.cgi?id=68021
76
77         Reviewed by Tony Chang.
78
79         Reported by valgrind in http://crbug.com/60653.
80
81         Besides fixing the uninitialized read, add support for outputting the
82         list separator for counters() calls and the list-style name.
83
84         Test: fast/css/counters/counter-cssText.html
85
86         * css/CSSPrimitiveValue.cpp:
87         (WebCore::CSSPrimitiveValue::cssText):
88
89 2011-09-13  Kenichi Ishibashi  <bashi@chromium.org>
90
91         WebFont followed tiny monospace text displays weird
92         https://bugs.webkit.org/show_bug.cgi?id=67996
93
94         Reviewed by Darin Adler.
95
96         Always call wkSetCGFontRenderingMode() in Font::drawGlyphs() so that the rendering mode is set correctly.
97
98         Test: platform/mac/fast/text/webfont-after-tiny-monospace-text.html
99
100         * platform/graphics/mac/FontMac.mm:
101         (WebCore::Font::drawGlyphs):
102
103 2011-09-13  Tom Sepez  <tsepez@chromium.org>
104
105         Fix XSS auditor bypass when inline handlers contain comments.
106         https://bugs.webkit.org/show_bug.cgi?id=27895
107
108         Reviewed by Adam Barth.
109
110         Tests: http/tests/security/xssAuditor/property-escape-comment.html
111                http/tests/security/xssAuditor/property-escape-entity.html
112                http/tests/security/xssAuditor/property-escape-quote.html
113
114         * html/parser/XSSAuditor.cpp:
115         (WebCore::XSSAuditor::snippetForAttribute):
116
117 2011-09-13  Kentaro Hara  <haraken@google.com>
118
119         Implement a HashChangeEvent constructor for V8
120         https://bugs.webkit.org/show_bug.cgi?id=67969
121
122         Reviewed by Nate Chapin.
123
124         Test: fast/events/constructors/hash-change-event-constructor.html
125
126         * bindings/v8/custom/V8EventConstructors.cpp: Added the HashChangeEvent constructor.
127         * dom/HashChangeEvent.idl: Added a 'V8CustomConstructor' attribute.
128
129 2011-09-13  Jeremy Apthorp  <jeremya@google.com>
130
131         Fix crash when an iframe element is removed during a transition to
132         fullscreen.
133         https://bugs.webkit.org/show_bug.cgi?id=67960
134
135         Reviewed by Adam Barth.
136
137         Test: fullscreen/full-screen-remove-ancestor-during-transition.html
138
139         * dom/Document.cpp:
140         (WebCore::Document::~Document):
141         Clear the list of elements to which we need to send a fullscreenchange
142         event.
143
144 2011-09-13  David Hyatt  <hyatt@apple.com>
145
146         https://bugs.webkit.org/show_bug.cgi?id=68040
147         
148         Make sure border image sub-properties can be specified in any order.
149
150         Reviewed by Beth Dakin.
151
152         New tests in fast/borders.
153
154         * css/CSSParser.cpp:
155         (WebCore::BorderImageParseContext::BorderImageParseContext):
156         (WebCore::BorderImageParseContext::canAdvance):
157         (WebCore::BorderImageParseContext::setCanAdvance):
158         (WebCore::BorderImageParseContext::allowCommit):
159         (WebCore::BorderImageParseContext::allowImage):
160         (WebCore::BorderImageParseContext::allowImageSlice):
161         (WebCore::BorderImageParseContext::allowSlash):
162         (WebCore::BorderImageParseContext::requireWidth):
163         (WebCore::BorderImageParseContext::requireOutset):
164         (WebCore::BorderImageParseContext::commitImage):
165         (WebCore::BorderImageParseContext::commitImageSlice):
166         (WebCore::BorderImageParseContext::commitSlash):
167         (WebCore::BorderImageParseContext::commitBorderWidth):
168         (WebCore::BorderImageParseContext::commitBorderOutset):
169         (WebCore::BorderImageParseContext::commitRepeat):
170         (WebCore::CSSParser::parseBorderImage):
171         (WebCore::CSSParser::parseBorderImageRepeat):
172         (WebCore::CSSParser::parseBorderImageSlice):
173         (WebCore::CSSParser::parseBorderImageQuad):
174         * css/CSSParserValues.h:
175         (WebCore::CSSParserValueList::previous):
176
177 2011-09-13  Jeff Miller  <jeffm@apple.com>
178
179         WebCore::Cursor::ensurePlatformCursor() should always set a valid platform cursor on Windows
180         https://bugs.webkit.org/show_bug.cgi?id=68043
181         
182         Make sure we set a valid platform cursor in the Cursor::NoDrop case, and add a default
183         clause that uses the arrow cursor in case another cursor type is added in the future
184         and we forget to update ensurePlatformCursor().
185
186         Reviewed by Anders Carlsson.
187
188         * platform/win/CursorWin.cpp:
189         (WebCore::Cursor::ensurePlatformCursor): Always set a valid platform cursor.
190
191 2011-09-12  Jon Honeycutt  <jhoneycutt@apple.com>
192
193         MSAA: WebKit reports the document state as disabled
194         https://bugs.webkit.org/show_bug.cgi?id=67974
195         <rdar://problem/10095898>
196
197         Reviewed by Brian Weinstein.
198
199         Test: platform/win/accessibility/document-enabled-state.html
200
201         * accessibility/AccessibilityScrollView.h:
202         (WebCore::AccessibilityScrollView::isEnabled):
203         This object backs the AccessibleDocument on Windows - always return
204         true for its enabled state.
205
206 2011-08-11  Cris Neckar  <cdn@chromium.org>
207
208         Fixes several bugs when adding CounterNodes to a tree which can cause asymetrical relationships.
209         https://bugs.webkit.org/show_bug.cgi?id=65996
210
211         Reviewed by Eric Seidel.
212
213         Test: fast/css/counters/counter-reparent-table-children-crash.html
214
215         * rendering/CounterNode.cpp:
216         (WebCore::CounterNode::insertAfter):
217         * rendering/RenderCounter.cpp:
218         (WebCore::findPlaceForCounter):
219         (WebCore::makeCounterNode):
220
221 2011-09-13  Beth Dakin  <bdakin@apple.com>
222
223         Adding a comment I forgot to add before.
224
225         * rendering/RenderImage.cpp:
226         (WebCore::RenderImage::imageSizeForError):
227
228 2011-09-13  Antti Koivisto  <antti@apple.com>
229
230         Move identifier filter from CSSStyleSelector to SelectorChecker
231         https://bugs.webkit.org/show_bug.cgi?id=68025
232
233         Reviewed by Sam Weinig.
234
235         This is a more logical place for this code. It also makes CSSStyleSelector slightly less bloated. 
236         It will make it possible to use fastRejectSelector for querySelectorAll in the future.
237
238         * css/CSSStyleSelector.cpp:
239         (WebCore::loadViewSourceStyle):
240         (WebCore::CSSStyleSelector::matchRulesForList):
241         (WebCore::RuleData::RuleData):
242         * css/CSSStyleSelector.h:
243         (WebCore::CSSStyleSelector::pushParent):
244         (WebCore::CSSStyleSelector::popParent):
245         * css/SelectorChecker.cpp:
246         (WebCore::collectElementIdentifierHashes):
247         (WebCore::SelectorChecker::pushParentStackFrame):
248         (WebCore::SelectorChecker::popParentStackFrame):
249         (WebCore::SelectorChecker::pushParent):
250         (WebCore::SelectorChecker::popParent):
251         (WebCore::collectDescendantSelectorIdentifierHashes):
252         (WebCore::SelectorChecker::collectIdentifierHashes):
253         * css/SelectorChecker.h:
254         (WebCore::SelectorChecker::parentStackIsConsistent):
255         (WebCore::SelectorChecker::ParentStackFrame::ParentStackFrame):
256         (WebCore::SelectorChecker::fastRejectSelector):
257
258 2011-09-13  Kiyoto Tamura  <owenestea@gmail.com>
259
260         For compatibility, execCommand should support deprecated 'useCSS' alias for 'styleWithCSS'
261         https://bugs.webkit.org/show_bug.cgi?id=36683
262
263         Reviewed by Ryosuke Niwa.
264
265         In addition to supporting the deprecated 'useCSS', 'styleWithCSS' now accepts any argument other than
266         the boolean false or the case-insensitive string "false". This is per
267         http://aryeh.name/spec/editing/editing.html#the-stylewithcss-command
268
269         Tests: editing/execCommand/style-with-css.html
270                editing/execCommand/use-css.html
271
272         * editing/EditorCommand.cpp:
273         (WebCore::executeStyleWithCSS):
274         (WebCore::executeUseCSS):
275         (WebCore::createCommandMap):
276
277 2011-09-13  Anders Carlsson  <andersca@apple.com>
278
279         Disable C++ exceptions when building with clang
280         https://bugs.webkit.org/show_bug.cgi?id=68031
281         <rdar://problem/9556880>
282
283         Reviewed by Mark Rowe.
284
285         * Configurations/Base.xcconfig:
286
287 2011-09-13  Beth Dakin  <bdakin@apple.com>
288
289         https://bugs.webkit.org/show_bug.cgi?id=67885
290         Outline for the high-resolution broken image icon draws at 2x
291         -and corresponding-
292         <rdar://problem/10104637>
293
294         Reviewed by Dan Bernstein.
295
296         Scaled the image size to account for the deviceScaleFactor. 
297         * rendering/RenderImage.cpp:
298         (WebCore::RenderImage::imageSizeForError):
299
300 2011-09-13  Tim Horton  <timothy_horton@apple.com>
301
302         REGRESSION (64275): Shape pattern-image fill turns black
303         https://bugs.webkit.org/show_bug.cgi?id=51061
304         <rdar://problem/8504705>
305
306         Reviewed by Simon Fraser.
307
308         When destroying a resource, register clients who are losing their
309         resource as having pending resources, so they can be resolved in the case a
310         resource with that id is re-registered.
311
312         Test: svg/custom/pending-resource-after-removal.xhtml
313
314         * rendering/svg/SVGResourcesCache.cpp:
315         (WebCore::SVGResourcesCache::resourceDestroyed):
316         * svg/SVGStyledElement.h:
317         (WebCore::toSVGStyledElement): Added.
318
319 2011-09-13  Eric Seidel  <eric@webkit.org>
320
321         Remove ENABLE_SVG_FOREIGN_OBJECT as it is a required part of HTML5
322         https://bugs.webkit.org/show_bug.cgi?id=68018
323
324         Reviewed by Ryosuke Niwa.
325
326         * Configurations/FeatureDefines.xcconfig:
327         * DerivedSources.make:
328         * GNUmakefile.am:
329         * WebCore.exp.in:
330         * dom/DOMImplementation.cpp:
331         (WebCore::isSVG10Feature):
332         (WebCore::isSVG11Feature):
333         * dom/Text.cpp:
334         (WebCore::Text::createRenderer):
335         * features.pri:
336         * page/DOMWindow.idl:
337         * rendering/svg/RenderSVGForeignObject.cpp:
338         * rendering/svg/RenderSVGForeignObject.h:
339         * svg/SVGAnimateMotionElement.cpp:
340         (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
341         * svg/SVGForeignObjectElement.cpp:
342         * svg/SVGForeignObjectElement.h:
343         * svg/SVGForeignObjectElement.idl:
344         * svg/SVGLocatable.cpp:
345         (WebCore::isViewportElement):
346         * svg/SVGSVGElement.cpp:
347         (WebCore::SVGSVGElement::isOutermostSVG):
348         * svg/SVGUseElement.cpp:
349         (WebCore::isDisallowedElement):
350         (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
351         * svg/svgtags.in:
352
353 2011-09-13  Joseph Pecoraro  <joepeck@webkit.org>
354
355         CRASH under WebCore::ArchiveResourceCollection::addAllResources loading WebArchive
356         https://bugs.webkit.org/show_bug.cgi?id=67983
357
358         Reviewed by Darin Adler.
359
360         Null mimetypes are okay for subresources, but as previously discovered
361         in bug 41082 they were required for main resources. Here we ensure
362         that they are required for main resources, but we allow null mimetypes
363         for subresources.
364
365         To fix a crash for bad input we never add a null ArchiveResource to the
366         Archive's subresource collection. It is useless and causes crashes whenever
367         someone iterates the Archive's subresource collection.
368
369         Test: webarchive/loading/test-loading-archive-subresource-null-mimetype.html
370
371         * loader/archive/cf/LegacyWebArchive.cpp:
372         (WebCore::LegacyWebArchive::createResource):
373         Allow a null mimetype, just type check from the dictionary.
374
375         (WebCore::LegacyWebArchive::extract):
376         Require a mimetype for the main resource. Do not add null
377         subresources to the subresource list.
378
379 2011-09-13  Mihai Parparita  <mihaip@chromium.org>
380
381         [Chromium] Remove javascript_engine from WebCore.gyp
382         https://bugs.webkit.org/show_bug.cgi?id=68001
383
384         Reviewed by Tony Chang.
385
386         Remove javascript_engine GYP variable (similar to the removal done on
387         the Chromium side with http://crrev.com/100692)
388
389         * WebCore.gyp/WebCore.gyp:
390
391 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
392
393         [CSS3 Backgrounds and Borders] Add unprefixed border-image shorthand.
394         https://bugs.webkit.org/show_bug.cgi?id=67970
395
396         Reviewed by David Hyatt.
397
398         Also update CSSStyleSelector.cpp to support border-image to suppress assertion in
399         fast/borders/border-image-omit-right-slice.html
400
401         * css/CSSStyleSelector.cpp:
402         (WebCore::CSSStyleSelector::applyProperty):
403         (WebCore::CSSStyleSelector::mapNinePieceImage):
404
405 2011-09-13  Xianzhu Wang  <wangxianzhu@chromium.org>
406
407         Reviewed by Darin Adler.
408
409         Webkit wraps between hyphen-minus and numeric characters 
410         https://bugs.webkit.org/show_bug.cgi?id=20677
411
412         Disallow wrapping between a hyphen-minus and a digit if the hyphen-minus
413         is not directly after a digit or a letter.
414
415         Test: fast/text/line-breaks-after-hyphen-before-number.html
416
417         * rendering/break_lines.cpp:
418         (WebCore::asciiLineBreakTable): Disabled line-breaking after '-' and before '.', '0'-'9'. Note: the change for '0'-'9' doesn't really matter because the case is handled hard-coded in shouldBreakAfter().
419         (WebCore::shouldBreakAfter): Changed line-breaking behavior after '-'.
420         (WebCore::nextBreakablePosition): Passes lastLastCh to shouldBreakAfter. 
421
422 2011-09-13  Erik Wright  <erikwright@chromium.org>
423
424         platform/graphics/gtk/FontGtk.cpp was renamed to platform/graphics/pango/FontPango.cpp . Reflect this change in WebCore.gypi to fix a Chromium build breakage.
425         https://bugs.webkit.org/show_bug.cgi?id=68000
426
427         Reviewed by Tony Gentilcore.
428
429         No change in functionality, thus no new tests.
430
431         * WebCore.gypi:
432
433 2011-09-10  Mikhail Naganov  <mnaganov@chromium.org>
434
435         Web Inspector: Profiler: Fix overlapping data in function names column.
436         https://bugs.webkit.org/show_bug.cgi?id=67896
437
438         Reviewed by Pavel Feldman.
439
440         * inspector/front-end/ProfileDataGridTree.js:
441         (WebInspector.ProfileDataGridNode.prototype.createCell):
442         * inspector/front-end/dataGrid.css:
443         (.data-grid table.data):
444         (.data-grid td):
445
446 2011-09-13  Sheriff Bot  <webkit.review.bot@gmail.com>
447
448         Unreviewed, rolling out r95025.
449         http://trac.webkit.org/changeset/95025
450         https://bugs.webkit.org/show_bug.cgi?id=68005
451
452         Test failed on Snow Leopard bots. (Requested by yutak_home on
453         #webkit).
454
455         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
456         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
457         (WebCore::ThreadableWebSocketChannelClientWrapper::subprotocol):
458         (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol):
459         * websockets/ThreadableWebSocketChannelClientWrapper.h:
460
461 2011-09-13  Yuta Kitamura  <yutak@chromium.org>
462
463         ThreadableWebSocketChannelClientWrapper shouldn't have a String in it.
464         https://bugs.webkit.org/show_bug.cgi?id=67908
465
466         Reviewed by David Levin.
467
468         Replace a String member variable in ThreadableWebSocketChannelClientWrapper with Vector<UChar>.
469
470         No change in functionality, thus no new tests. WebSocket worker tests
471         (tests under http/tests/websocket/tests/{hixie76,hybi}/workers/) should keep passing.
472
473         * websockets/ThreadableWebSocketChannelClientWrapper.cpp:
474         (WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
475         (WebCore::ThreadableWebSocketChannelClientWrapper::subprotocol):
476         Create a String from Vector<UChar>.
477         (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol):
478         Copy the content of the given String into Vector.
479         * websockets/ThreadableWebSocketChannelClientWrapper.h:
480
481 2011-09-13  Fumitoshi Ukai  <ukai@chromium.org>
482
483         Unreviewed, build fix.
484
485         CSSPropertyBorderImage was added in r94989, but not yet added in
486         WebCore::CSSStyleSelector::applyProperty
487
488         CSSStyleSelector.cpp:2481: warning: enumeration value 'CSSPropertyBorderImage' not handled in switch
489
490         * css/CSSStyleSelector.cpp:
491         (WebCore::CSSStyleSelector::applyProperty):
492
493 2011-09-12  Shinya Kawanaka  <shinyak@google.com>
494
495         Crashes in WebCore::InsertListCommand::unlistifyParagraph.
496         https://bugs.webkit.org/show_bug.cgi?id=67918
497
498         Reviewed by Ryosuke Niwa.
499
500         execCommand("InsertUnorderedList") was crashing if the parent node of the target is
501         a kind of list element and it is not contenteditable.
502         This patch checks the parent node is contenteditable.
503
504         Test: editing/execCommand/insert-list-in-noneditable-list-parent.html
505
506         * editing/htmlediting.cpp:
507         (WebCore::enclosingListChild): Checks the parent node is contenteditable.
508
509 2011-09-12  Sheriff Bot  <webkit.review.bot@gmail.com>
510
511         Unreviewed, rolling out r94975.
512         http://trac.webkit.org/changeset/94975
513         https://bugs.webkit.org/show_bug.cgi?id=67984
514
515         crash in PrerenderBrowserTest.PrerenderHTML5VideoJs (Requested
516         by ukai on #webkit).
517
518         * platform/graphics/chromium/CanvasLayerChromium.h:
519         (WebCore::CanvasLayerChromium::layerTypeAsString):
520         * platform/graphics/chromium/ContentLayerChromium.h:
521         (WebCore::ContentLayerChromium::layerTypeAsString):
522         * platform/graphics/chromium/ImageLayerChromium.h:
523         (WebCore::ImageLayerChromium::layerTypeAsString):
524         * platform/graphics/chromium/LayerChromium.cpp:
525         (WebCore::LayerChromium::layerTreeAsText):
526         (WebCore::writeIndent):
527         (WebCore::LayerChromium::dumpLayer):
528         (WebCore::LayerChromium::dumpLayerProperties):
529         * platform/graphics/chromium/LayerChromium.h:
530         (WebCore::LayerChromium::layerTypeAsString):
531         * platform/graphics/chromium/LayerRendererChromium.cpp:
532         (WebCore::LayerRendererChromium::textureMemoryReclaimLimit):
533         (WebCore::LayerRendererChromium::create):
534         (WebCore::LayerRendererChromium::LayerRendererChromium):
535         (WebCore::LayerRendererChromium::close):
536         (WebCore::LayerRendererChromium::releaseTextures):
537         (WebCore::LayerRendererChromium::drawLayers):
538         (WebCore::LayerRendererChromium::drawLayersInternal):
539         (WebCore::LayerRendererChromium::getOffscreenLayerTexture):
540         (WebCore::LayerRendererChromium::initializeSharedObjects):
541         (WebCore::LayerRendererChromium::cleanupSharedObjects):
542         (WebCore::LayerRendererChromium::layerTreeAsText):
543         (WebCore::LayerRendererChromium::dumpRenderSurfaces):
544         * platform/graphics/chromium/LayerRendererChromium.h:
545         (WebCore::LayerRendererChromium::owner):
546         (WebCore::LayerRendererChromium::rootLayer):
547         (WebCore::LayerRendererChromium::rootLayerImpl):
548         (WebCore::LayerRendererChromium::viewportSize):
549         (WebCore::LayerRendererChromium::contentsTextureManager):
550         * platform/graphics/chromium/ManagedTexture.cpp:
551         (WebCore::ManagedTexture::bindTexture):
552         (WebCore::ManagedTexture::framebufferTexture2D):
553         * platform/graphics/chromium/PluginLayerChromium.h:
554         (WebCore::PluginLayerChromium::layerTypeAsString):
555         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
556         (WebCore::RenderSurfaceChromium::name):
557         (WebCore::writeIndent):
558         (WebCore::RenderSurfaceChromium::dumpSurface):
559         * platform/graphics/chromium/RenderSurfaceChromium.h:
560         * platform/graphics/chromium/TextureManager.cpp:
561         (WebCore::TextureManager::deleteEvictedTextures):
562         (WebCore::TextureManager::removeTexture):
563         (WebCore::TextureManager::allocateTexture):
564         (WebCore::TextureManager::requestTexture):
565         * platform/graphics/chromium/TextureManager.h:
566         (WebCore::TextureManager::setAssociatedContextDebugOnly):
567         (WebCore::TextureManager::associatedContextDebugOnly):
568         * platform/graphics/chromium/TiledLayerChromium.cpp:
569         (WebCore::writeIndent):
570         (WebCore::TiledLayerChromium::dumpLayerProperties):
571         * platform/graphics/chromium/TiledLayerChromium.h:
572         * platform/graphics/chromium/VideoLayerChromium.h:
573         (WebCore::VideoLayerChromium::layerTypeAsString):
574         * platform/graphics/chromium/WebGLLayerChromium.h:
575         (WebCore::WebGLLayerChromium::layerTypeAsString):
576         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
577         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
578         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
579         * platform/graphics/chromium/cc/CCLayerImpl.h:
580         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
581         (WebCore::CCLayerTreeHost::initialize):
582         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
583         (WebCore::CCLayerTreeHost::commitTo):
584         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
585         (WebCore::CCLayerTreeHost::setVisible):
586         (WebCore::CCLayerTreeHost::contentsTextureManager):
587         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
588         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
589         (WebCore::CCLayerTreeHostImpl::drawLayers):
590         (WebCore::CCLayerTreeHostImpl::setVisible):
591         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
592         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
593         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
594         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
595         * platform/graphics/chromium/cc/CCProxy.h:
596         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
597         (WebCore::CCSingleThreadProxy::initializeLayerRenderer):
598         (WebCore::CCSingleThreadProxy::stop):
599         (WebCore::CCSingleThreadProxy::contentsTextureManager):
600         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
601         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
602         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
603         (WebCore::CCThreadProxy::initializeLayerRenderer):
604         (WebCore::CCThreadProxy::contentsTextureManager):
605         (WebCore::CCThreadProxy::initializeLayerRendererOnCCThread):
606         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
607         * platform/graphics/chromium/cc/CCThreadProxy.h:
608         * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
609         (WebCore::CCTiledLayerImpl::dumpLayerProperties):
610         * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
611         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
612         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
613
614 2011-09-12  Joseph Pecoraro  <joepeck@webkit.org>
615
616         Possible ASSERT(!storageTracker) in Lazily Initialized StorageTracker
617         https://bugs.webkit.org/show_bug.cgi?id=67957
618
619         Reviewed by Darin Adler.
620
621         The storageTracker singleton may already have been created
622         through StorageTracker::tracker before initializeTracker
623         gets called. Update the ASSERT in this case to check that
624         there is no client for the tracker.
625
626         No test, this depends on how the port initializes the tracker.
627
628         * storage/StorageTracker.cpp:
629         (WebCore::StorageTracker::initializeTracker):
630
631 2011-09-12  Adam Klein  <adamk@chromium.org>
632
633         Fix out-of-bounds access in Gradient::sortStopsIfNecessary
634         https://bugs.webkit.org/show_bug.cgi?id=67958
635
636         Reviewed by Darin Adler.
637
638         Reported by Valgrind in http://crbug.com/77049.
639
640         The errant code was added as an optimization in r67804.
641         This patch reverts that one, as all parties agree that the optimization
642         doesn't seem worthwhile, and there clearly aren't any tests covering
643         the special case.
644
645         No new tests, as existing tests should cover the remaining call to
646         |std::stable_sort|.
647
648         * platform/graphics/Gradient.cpp:
649         (WebCore::Gradient::sortStopsIfNecessary):
650
651 2011-09-12  Jacky Jiang  <zhajiang@rim.com>
652
653         Setting document.title doesn't affect contents of title tag of XHTML documents
654         https://bugs.webkit.org/show_bug.cgi?id=57537
655
656         Reviewed by Alexey Proskuryakov.
657
658         Update the contents of the <title> tag of XHTML documents when setting
659         document.title.
660
661         Test: fast/dom/title-content-set-innerText-get.xhtml
662
663         * dom/Document.cpp:
664         (WebCore::Document::setTitle):
665
666 2011-09-12  Raphael Kubo da Costa  <kubo@profusion.mobi>
667
668         [EFL] Initialize m_unmodifiedText in PlatformKeyboardEventEfl.
669         https://bugs.webkit.org/show_bug.cgi?id=67038
670
671         Reviewed by Kenneth Rohde Christiansen.
672
673         Since most of the time it will return the same thing as text(), we
674         initialize it the same way we initialize m_text. The other case (what
675         would have been generated if no modifiers were pressed) should be
676         covered by this as well.
677
678         As this method is used when handling access keys, tests such as
679         fast/events/access-key-self-destruct.html should now pass.
680
681         No new tests, as this fixes a problem uncovered by the existing ones.
682
683         * platform/efl/PlatformKeyboardEventEfl.cpp:
684         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
685
686 2011-09-12  Hyowon Kim  <hw1008.kim@samsung.com>
687
688         Reviewed by Eric Seidel.
689
690         [EFL] Add GraphicsContext3DEfl for WebGL and accelerated compositing
691         https://bugs.webkit.org/show_bug.cgi?id=62709
692
693         Add GraphicsContext3D implementation for EFL port.
694         GraphicsContext3D delegates to GraphicsContext3DInternal.
695
696         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Added.
697         (WebCore::GraphicsContext3D::create):
698         (WebCore::GraphicsContext3D::GraphicsContext3D):
699         (WebCore::GraphicsContext3D::~GraphicsContext3D):
700         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
701         (WebCore::GraphicsContext3D::platformLayer):
702         (WebCore::GraphicsContext3D::makeContextCurrent):
703         (WebCore::GraphicsContext3D::isGLES2Compliant):
704         (WebCore::GraphicsContext3D::activeTexture):
705         (WebCore::GraphicsContext3D::attachShader):
706         (WebCore::GraphicsContext3D::bindAttribLocation):
707         (WebCore::GraphicsContext3D::bindBuffer):
708         (WebCore::GraphicsContext3D::bindFramebuffer):
709         (WebCore::GraphicsContext3D::bindRenderbuffer):
710         (WebCore::GraphicsContext3D::bindTexture):
711         (WebCore::GraphicsContext3D::blendColor):
712         (WebCore::GraphicsContext3D::blendEquation):
713         (WebCore::GraphicsContext3D::blendEquationSeparate):
714         (WebCore::GraphicsContext3D::blendFunc):
715         (WebCore::GraphicsContext3D::blendFuncSeparate):
716         (WebCore::GraphicsContext3D::bufferData):
717         (WebCore::GraphicsContext3D::bufferSubData):
718         (WebCore::GraphicsContext3D::checkFramebufferStatus):
719         (WebCore::GraphicsContext3D::clear):
720         (WebCore::GraphicsContext3D::clearColor):
721         (WebCore::GraphicsContext3D::clearDepth):
722         (WebCore::GraphicsContext3D::clearStencil):
723         (WebCore::GraphicsContext3D::colorMask):
724         (WebCore::GraphicsContext3D::compileShader):
725         (WebCore::GraphicsContext3D::copyTexImage2D):
726         (WebCore::GraphicsContext3D::copyTexSubImage2D):
727         (WebCore::GraphicsContext3D::cullFace):
728         (WebCore::GraphicsContext3D::depthFunc):
729         (WebCore::GraphicsContext3D::depthMask):
730         (WebCore::GraphicsContext3D::depthRange):
731         (WebCore::GraphicsContext3D::detachShader):
732         (WebCore::GraphicsContext3D::disable):
733         (WebCore::GraphicsContext3D::disableVertexAttribArray):
734         (WebCore::GraphicsContext3D::drawArrays):
735         (WebCore::GraphicsContext3D::drawElements):
736         (WebCore::GraphicsContext3D::enable):
737         (WebCore::GraphicsContext3D::enableVertexAttribArray):
738         (WebCore::GraphicsContext3D::finish):
739         (WebCore::GraphicsContext3D::flush):
740         (WebCore::GraphicsContext3D::framebufferRenderbuffer):
741         (WebCore::GraphicsContext3D::framebufferTexture2D):
742         (WebCore::GraphicsContext3D::frontFace):
743         (WebCore::GraphicsContext3D::generateMipmap):
744         (WebCore::GraphicsContext3D::getActiveAttrib):
745         (WebCore::GraphicsContext3D::getActiveUniform):
746         (WebCore::GraphicsContext3D::getAttachedShaders):
747         (WebCore::GraphicsContext3D::getAttribLocation):
748         (WebCore::GraphicsContext3D::getBooleanv):
749         (WebCore::GraphicsContext3D::getBufferParameteriv):
750         (WebCore::GraphicsContext3D::getContextAttributes):
751         (WebCore::GraphicsContext3D::getError):
752         (WebCore::GraphicsContext3D::getFloatv):
753         (WebCore::GraphicsContext3D::getFramebufferAttachmentParameteriv):
754         (WebCore::GraphicsContext3D::getIntegerv):
755         (WebCore::GraphicsContext3D::getProgramiv):
756         (WebCore::GraphicsContext3D::getProgramInfoLog):
757         (WebCore::GraphicsContext3D::getRenderbufferParameteriv):
758         (WebCore::GraphicsContext3D::getShaderiv):
759         (WebCore::GraphicsContext3D::getShaderInfoLog):
760         (WebCore::GraphicsContext3D::getShaderSource):
761         (WebCore::GraphicsContext3D::getString):
762         (WebCore::GraphicsContext3D::getTexParameterfv):
763         (WebCore::GraphicsContext3D::getTexParameteriv):
764         (WebCore::GraphicsContext3D::getUniformfv):
765         (WebCore::GraphicsContext3D::getUniformiv):
766         (WebCore::GraphicsContext3D::getUniformLocation):
767         (WebCore::GraphicsContext3D::getVertexAttribfv):
768         (WebCore::GraphicsContext3D::getVertexAttribiv):
769         (WebCore::GraphicsContext3D::getVertexAttribOffset):
770         (WebCore::GraphicsContext3D::hint):
771         (WebCore::GraphicsContext3D::isBuffer):
772         (WebCore::GraphicsContext3D::isEnabled):
773         (WebCore::GraphicsContext3D::isFramebuffer):
774         (WebCore::GraphicsContext3D::isProgram):
775         (WebCore::GraphicsContext3D::isRenderbuffer):
776         (WebCore::GraphicsContext3D::isShader):
777         (WebCore::GraphicsContext3D::isTexture):
778         (WebCore::GraphicsContext3D::lineWidth):
779         (WebCore::GraphicsContext3D::linkProgram):
780         (WebCore::GraphicsContext3D::pixelStorei):
781         (WebCore::GraphicsContext3D::polygonOffset):
782         (WebCore::GraphicsContext3D::readPixels):
783         (WebCore::GraphicsContext3D::releaseShaderCompiler):
784         (WebCore::GraphicsContext3D::renderbufferStorage):
785         (WebCore::GraphicsContext3D::sampleCoverage):
786         (WebCore::GraphicsContext3D::scissor):
787         (WebCore::GraphicsContext3D::shaderSource):
788         (WebCore::GraphicsContext3D::stencilFunc):
789         (WebCore::GraphicsContext3D::stencilFuncSeparate):
790         (WebCore::GraphicsContext3D::stencilMask):
791         (WebCore::GraphicsContext3D::stencilMaskSeparate):
792         (WebCore::GraphicsContext3D::stencilOp):
793         (WebCore::GraphicsContext3D::stencilOpSeparate):
794         (WebCore::GraphicsContext3D::texImage2D):
795         (WebCore::GraphicsContext3D::texParameterf):
796         (WebCore::GraphicsContext3D::texParameteri):
797         (WebCore::GraphicsContext3D::texSubImage2D):
798         (WebCore::GraphicsContext3D::uniform1f):
799         (WebCore::GraphicsContext3D::uniform1fv):
800         (WebCore::GraphicsContext3D::uniform1i):
801         (WebCore::GraphicsContext3D::uniform1iv):
802         (WebCore::GraphicsContext3D::uniform2f):
803         (WebCore::GraphicsContext3D::uniform2fv):
804         (WebCore::GraphicsContext3D::uniform2i):
805         (WebCore::GraphicsContext3D::uniform2iv):
806         (WebCore::GraphicsContext3D::uniform3f):
807         (WebCore::GraphicsContext3D::uniform3fv):
808         (WebCore::GraphicsContext3D::uniform3i):
809         (WebCore::GraphicsContext3D::uniform3iv):
810         (WebCore::GraphicsContext3D::uniform4f):
811         (WebCore::GraphicsContext3D::uniform4fv):
812         (WebCore::GraphicsContext3D::uniform4i):
813         (WebCore::GraphicsContext3D::uniform4iv):
814         (WebCore::GraphicsContext3D::uniformMatrix2fv):
815         (WebCore::GraphicsContext3D::uniformMatrix3fv):
816         (WebCore::GraphicsContext3D::uniformMatrix4fv):
817         (WebCore::GraphicsContext3D::useProgram):
818         (WebCore::GraphicsContext3D::validateProgram):
819         (WebCore::GraphicsContext3D::vertexAttrib1f):
820         (WebCore::GraphicsContext3D::vertexAttrib1fv):
821         (WebCore::GraphicsContext3D::vertexAttrib2f):
822         (WebCore::GraphicsContext3D::vertexAttrib2fv):
823         (WebCore::GraphicsContext3D::vertexAttrib3f):
824         (WebCore::GraphicsContext3D::vertexAttrib3fv):
825         (WebCore::GraphicsContext3D::vertexAttrib4f):
826         (WebCore::GraphicsContext3D::vertexAttrib4fv):
827         (WebCore::GraphicsContext3D::vertexAttribPointer):
828         (WebCore::GraphicsContext3D::viewport):
829         (WebCore::GraphicsContext3D::reshape):
830         (WebCore::GraphicsContext3D::markContextChanged):
831         (WebCore::GraphicsContext3D::markLayerComposited):
832         (WebCore::GraphicsContext3D::layerComposited):
833         (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
834         (WebCore::GraphicsContext3D::paintRenderingResultsToImageData):
835         (WebCore::GraphicsContext3D::createBuffer):
836         (WebCore::GraphicsContext3D::createFramebuffer):
837         (WebCore::GraphicsContext3D::createProgram):
838         (WebCore::GraphicsContext3D::createRenderbuffer):
839         (WebCore::GraphicsContext3D::createShader):
840         (WebCore::GraphicsContext3D::createTexture):
841         (WebCore::GraphicsContext3D::deleteBuffer):
842         (WebCore::GraphicsContext3D::deleteFramebuffer):
843         (WebCore::GraphicsContext3D::deleteProgram):
844         (WebCore::GraphicsContext3D::deleteRenderbuffer):
845         (WebCore::GraphicsContext3D::deleteShader):
846         (WebCore::GraphicsContext3D::deleteTexture):
847         (WebCore::GraphicsContext3D::synthesizeGLError):
848         (WebCore::GraphicsContext3D::getExtensions):
849         (WebCore::GraphicsContext3D::getInternalFramebufferSize):
850         (WebCore::GraphicsContext3D::setContextLostCallback):
851         (WebCore::GraphicsContext3D::getImageData):
852
853 2011-09-12  Hyowon Kim  <hw1008.kim@samsung.com>
854
855         Reviewed by Eric Seidel.
856
857         [CMAKE] Remove platform/graphics/opengl/*OpenGL.cpp files in CMakeLists.txt
858         https://bugs.webkit.org/show_bug.cgi?id=62707
859
860         No change in fuctionality so no new tests.
861
862         Bug 62376 makes all ports use GraphicsContext3DOpenGL and
863         Extensions3DOpenGL when enabling WebGL.
864         However, some ports already have their own GC3D implementation.
865         In QT and chromium, for example, GC3D delegates to GC3DInternal.
866         So, it would be better to allow each port to decide whether or not
867         to include files in platform/graphics/opengl. 
868
869         * CMakeLists.txt:
870
871 2011-09-12  Dan Bernstein  <mitz@apple.com>
872
873         <rdar://problem/10054615> Floats in ruby text intrude into the base
874
875         Reviewed by Darin Adler.
876
877         Test: fast/ruby/float-overhang-from-ruby-text.html
878
879         * rendering/RenderRubyText.cpp:
880         (WebCore::RenderRubyText::avoidsFloats): Added. Returns true. This ensures that
881         RenderBlock::clearFloats() will not consider ruby text as having intruding floats.
882         * rendering/RenderRubyText.h:
883
884 2011-09-12  David Hyatt  <hyatt@apple.com>
885
886         https://bugs.webkit.org/show_bug.cgi?id=67970
887
888         Add unprefixed border-image property.
889
890         Reviewed by Beth Dakin.
891
892         * css/CSSComputedStyleDeclaration.cpp:
893         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
894         * css/CSSParser.cpp:
895         (WebCore::CSSParser::parseValue):
896         * css/CSSPropertyNames.in:
897
898 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
899
900         REGRESSION: Moving up doesn't work in some cases
901         https://bugs.webkit.org/show_bug.cgi?id=67522
902
903         Reviewed by Eric Seidel.
904
905         The bug was caused by previousLinePosition's attempting to obtain the last root line box using
906         a position at minCaretOffset (which is, in practice, located at the beginning of wrapped lines).
907
908         Fix the bug by calling maxCaretOffset instead. Because isCandidate returns false at (br, 1),
909         use the positionBeforeNode for br elements.
910
911         Test: editing/selection/move-up-into-wrapped-line.html
912
913         * editing/visible_units.cpp:
914         (WebCore::previousLinePosition):
915
916 2011-09-12  David Levin  <levin@chromium.org>
917
918         Make the ThreadSafeRefCounted support in CrossThreadCopier work for T*.
919         https://bugs.webkit.org/show_bug.cgi?id=67947
920
921         Reviewed by Adam Barth.
922
923         The changes are tested by compiling and added compile asserts to do some verification as well.
924
925         * platform/CrossThreadCopier.cpp:
926         Added some compile asserts to verify various match and non-matches for CrossThreadCopier.
927         * platform/CrossThreadCopier.h:
928         Added a typedef to convert T* to T, just like the typedef's to remove RefPtr and PassRefPtr.
929         Added a compile assert to verify that only one of the typedef did anything.
930         (CrossThreadCopierBase<false, true, T>::copy): Remove "get" as it is unnecessary.
931         It shouldn't have been here (PassRefPtr and RefPtr easily and sometimes more efficiently
932         convert to PassRefPtr without get). Also, a raw pointer doesn't have a get() method.
933
934 2011-09-12  Chris Rogers  <crogers@google.com>
935
936         Address lifetime issues in OfflineAudioDestinationNode
937         https://bugs.webkit.org/show_bug.cgi?id=67949
938
939         Reviewed by Kenneth Russell.
940
941         No new tests.  This does not change JavaScript API.
942
943         * webaudio/OfflineAudioDestinationNode.cpp:
944         (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
945         (WebCore::OfflineAudioDestinationNode::render):
946         (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):
947
948 2011-09-12  Jeff Timanus  <twiz@chromium.org>
949
950         [chromium]  Prevent a crash when tearing down an ImageBuffer that was not successfully initialized.
951         https://bugs.webkit.org/show_bug.cgi?id=67944
952
953         Reviewed by Stephen White.
954         
955         * platform/graphics/skia/ImageBufferSkia.cpp:
956         (WebCore::ImageBuffer::~ImageBuffer):
957
958 2011-09-12  Michael Saboff  <msaboff@apple.com>
959
960         Update RegExp and related classes to use 8 bit strings when available
961         https://bugs.webkit.org/show_bug.cgi?id=67337
962
963         Updated call to match to use UString& instead of UChar*.
964
965         Reviewed by Gavin Barraclough.
966
967         No new tests, Covered by existing tests.
968
969         * platform/text/RegularExpression.cpp:
970         (WebCore::RegularExpression::match):
971
972 2011-09-12  Beth Dakin  <bdakin@apple.com>
973
974         https://bugs.webkit.org/show_bug.cgi?id=67898
975         REGRESSION(r94900): fast/images/support-broken-image-delegate.html fails on Mac
976
977         Reviewed by Simon Fraser.
978
979         New function willPaintBrokenImage() returns true when there has been an error 
980         loading the image and the broken image icon will be used in its place. This is 
981         necessary since it is possible to have an error loading an image and to NOT use 
982         the broken image icon. 
983         * loader/cache/CachedImage.cpp:
984         (WebCore::CachedImage::willPaintBrokenImage):
985         * loader/cache/CachedImage.h:
986         * rendering/RenderImage.cpp:
987         (WebCore::RenderImage::imageSizeForError):
988
989 2011-09-12  James Robinson  <jamesr@chromium.org>
990
991         [chromium] Move contents texture manager from LayerRendererChromium to CCLayerTreeHost
992         https://bugs.webkit.org/show_bug.cgi?id=67440
993
994         Reviewed by Kenneth Russell.
995
996         This moves the contents TextureManager over to the CCLayerTreeHost, where it belongs, and adds in a commit path
997         to make sure that textures are deleted even if the page is not visible.  This move also removed the need for
998         LayerRendererChromium's CCLayerTreeHost pointer, so I removed that as well.  That meant moving the
999         layerTreeAsText() logic over to the CCLayerImpl side, which is where it really belonged anyway.
1000
1001         Covered by existing compositing/ tests and
1002         platform/chromium/compositor/lost-compositor-context-with-rendersurface.html
1003
1004         * platform/graphics/chromium/LayerRendererChromium.cpp:
1005         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
1006         (WebCore::LayerRendererChromium::drawLayers):
1007         (WebCore::LayerRendererChromium::initializeSharedObjects):
1008         (WebCore::LayerRendererChromium::cleanupSharedObjects):
1009         * platform/graphics/chromium/LayerRendererChromium.h:
1010         (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
1011         * platform/graphics/chromium/TextureManager.cpp:
1012         (WebCore::TextureManager::highLimitBytes):
1013         (WebCore::TextureManager::reclaimLimitBytes):
1014         (WebCore::TextureManager::lowLimitBytes):
1015         * platform/graphics/chromium/TextureManager.h:
1016         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1017         (WebCore::CCLayerTreeHost::initialize):
1018         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
1019         (WebCore::CCLayerTreeHost::deleteContentsTextures):
1020         (WebCore::CCLayerTreeHost::commitTo):
1021         (WebCore::CCLayerTreeHost::setVisible):
1022         (WebCore::CCLayerTreeHost::contentsTextureManager):
1023         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1024         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1025         (WebCore::CCLayerTreeHostImpl::setVisible):
1026         * platform/graphics/chromium/cc/CCProxy.h:
1027         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1028         (WebCore::CCSingleThreadProxy::setNeedsCommit):
1029         (WebCore::CCSingleThreadProxy::stop):
1030         * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
1031         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1032         (WebCore::CCThreadProxy::setNeedsCommit):
1033         (WebCore::CCThreadProxy::setNeedsCommitOnCCThread):
1034         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
1035         * platform/graphics/chromium/cc/CCThreadProxy.h:
1036
1037 2011-09-12  Chris Rogers  <crogers@google.com>
1038
1039         DelayNode delay buffer is not correctly wrapping around
1040         https://bugs.webkit.org/show_bug.cgi?id=67872
1041
1042         Reviewed by Kenneth Russell.
1043
1044         Test: webaudio/delaynode.html
1045
1046         * webaudio/DelayDSPKernel.cpp:
1047         (WebCore::DelayDSPKernel::process):
1048
1049 2011-09-12  Arko Saha  <arko@motorola.com>
1050
1051         Selectstart is not fired when selection was created by arrow keys.
1052         https://bugs.webkit.org/show_bug.cgi?id=60430
1053
1054         Reviewed by Ryosuke Niwa.
1055
1056         Fire selectstart when a user starts extending the selection using arrow key.
1057         Fixed by Arko Saha  <arko@motorola.com> and Kaustubh Atrawalkar  <kaustubh@motorola.com>
1058
1059         Tests: fast/events/selectstart-by-arrow-keys-prevent-default.html
1060                fast/events/selectstart-by-arrow-keys.html
1061
1062         * editing/FrameSelection.cpp:
1063         (WebCore::FrameSelection::modify):
1064         (WebCore::FrameSelection::shouldChangeSelection):
1065         (WebCore::FrameSelection::dispatchSelectStart):
1066         * editing/FrameSelection.h:
1067
1068 2011-09-12  James Robinson  <jamesr@chromium.org>
1069
1070         [chromium] REGRESSION(94353): Compositor textures and resources leaked when tab closed that is not last tab in the process
1071         https://bugs.webkit.org/show_bug.cgi?id=67816
1072
1073         Reviewed by Kenneth Russell.
1074
1075         We lack infrastructure to construct an automated test for this today. To test manually, open up a composited
1076         page (like the poster circle), duplicate the tab many times, close all the duplicates, and verify that the
1077         memory use returns to the single tab level.
1078
1079         * platform/graphics/chromium/LayerChromium.h:
1080         * platform/graphics/chromium/TiledLayerChromium.cpp:
1081         (WebCore::TiledLayerChromium::setLayerTreeHost):
1082         * platform/graphics/chromium/VideoLayerChromium.cpp:
1083         (WebCore::VideoLayerChromium::setLayerTreeHost):
1084         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1085         (WebCore::CCLayerTreeHost::clearRenderSurfacesRecursive):
1086         (WebCore::CCLayerTreeHost::setRootLayer):
1087         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1088
1089 2011-09-12  Kentaro Hara  <haraken@google.com>
1090
1091         Implement a HashChangeEvent constructor for JSC
1092         https://bugs.webkit.org/show_bug.cgi?id=67924
1093
1094         Reviewed by Sam Weinig.
1095
1096         The spec for the HashChangeEvent constructor is here:
1097         http://www.whatwg.org/specs/web-apps/current-work/#hashchangeevent
1098
1099         Test: fast/events/constructors/hash-change-event-constructor.html
1100
1101         * bindings/generic/EventConstructors.h: Added a definition for the HashChangeEvent constructor.
1102         * bindings/js/JSEventConstructors.cpp: Added #includes for HashChangeEvent.
1103         * dom/HashChangeEvent.h: Added a definition for HashChangeEventInit.
1104         (WebCore::HashChangeEventInit::HashChangeEventInit):
1105         (WebCore::HashChangeEvent::create):
1106         (WebCore::HashChangeEvent::HashChangeEvent):
1107         * dom/HashChangeEvent.idl: Makes HashChangeEvent constructible.
1108
1109 2011-09-12  Mike Reed  <reed@google.com>
1110
1111         [skia] remove dead code, no functionality change
1112         https://bugs.webkit.org/show_bug.cgi?id=67844
1113
1114         Reviewed by Kenneth Russell.
1115
1116         No new tests. just removing dead-code, existing tests apply
1117
1118         * platform/graphics/chromium/FontChromiumWin.cpp:
1119         (WebCore::Font::drawGlyphs):
1120
1121 2011-09-12  Pavel Feldman  <pfeldman@google.com>
1122
1123         Web Inspector: Runtime.callFunctionOn does not accept arguments that evaluate to false.
1124         https://bugs.webkit.org/show_bug.cgi?id=67934
1125
1126         Reviewed by Tony Gentilcore.
1127
1128         * inspector/InjectedScriptSource.js:
1129
1130 2011-09-12  Pavel Feldman  <pfeldman@google.com>
1131
1132         Web Inspector: event dividers do not update timeline boundaries.
1133         https://bugs.webkit.org/show_bug.cgi?id=67932
1134
1135         * inspector/front-end/NetworkPanel.js:
1136         (WebInspector.NetworkLogView.prototype._onLoadEventFired):
1137         (WebInspector.NetworkLogView.prototype._domContentLoadedEventFired):
1138         (WebInspector.NetworkLogView.prototype.refresh):
1139         (WebInspector.NetworkTimeCalculator.prototype.updateBoundariesForEventTime):
1140
1141 2011-09-12  Kentaro Hara  <haraken@google.com>
1142
1143         Implement a WebKitAnimationEvent constructor for V8
1144         https://bugs.webkit.org/show_bug.cgi?id=67922
1145
1146         Reviewed by Adam Barth.
1147
1148         Test: fast/events/constructors/webkit-animation-event-constructor.html
1149
1150         * bindings/v8/custom/V8EventConstructors.cpp: Added the WebKitAnimationEvent constructor.
1151         * dom/WebKitAnimationEvent.idl: Added a 'V8CustomConstructor' attribute.
1152
1153 2011-09-12  Andreas Kling  <kling@webkit.org>
1154
1155         Shrink CanvasGradient for builds without ENABLE(DASHBOARD_SUPPORT).
1156         https://bugs.webkit.org/show_bug.cgi?id=67916
1157
1158         Reviewed by Kenneth Rohde Christiansen.
1159
1160         * html/canvas/CanvasGradient.cpp:
1161         (WebCore::CanvasGradient::CanvasGradient):
1162         (WebCore::CanvasGradient::addColorStop):
1163         * html/canvas/CanvasGradient.h:
1164
1165 2011-09-12  Shinya Kawanaka  <shinyak@google.com>
1166
1167         Characters beyond U+10000 should be deleted by one pressing delete key.
1168         https://bugs.webkit.org/show_bug.cgi?id=40351
1169
1170         Reviewed by Kent Tamura.
1171
1172         If a character is the trail part of unicode surrogate pair, the lead part of it
1173         should also be deleted. Also, If in MacOSX, the deletion should honor Mac's behavior.
1174
1175         Test: editing/deleting/delete-surrogatepair.html
1176
1177         * rendering/RenderText.cpp:
1178         (WebCore::RenderText::previousOffsetForBackwardDeletion):
1179           Added if-macro to support chromium on mac, and added trail part check for unicode character.
1180
1181 2011-09-11  Kentaro Hara  <haraken@google.com>
1182
1183         Implement a ProgressEvent constructor for V8
1184         https://bugs.webkit.org/show_bug.cgi?id=67800
1185
1186         Reviewed by Sam Weinig.
1187
1188         Test: fast/events/constructors/progress-event-constructor.html
1189
1190         * bindings/js/JSDictionary.cpp:
1191         (WebCore::JSDictionary::convertValue): Replaced UnsignedLongLongMax with std::numeric_limits<unsigned long long>::max().
1192         * bindings/v8/OptionsObject.cpp:
1193         (WebCore::OptionsObject::getKeyValue): Returns an unsigned long long value corresponding to a given key. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
1194         * bindings/v8/OptionsObject.h:
1195         * bindings/v8/custom/V8EventConstructors.cpp: Added the ProgressEvent constructor.
1196         * dom/ProgressEvent.idl: Added a 'V8CustomConstructor' attribute.
1197
1198 2011-09-11  Dimitri Glazkov  <dglazkov@chromium.org>
1199
1200         REGRESSION (r87351): toggling display of lots (thousands) of elements with display:none is very slow
1201         https://bugs.webkit.org/show_bug.cgi?id=67581
1202
1203         Reviewed by Darin Adler.
1204
1205         Test: perf/show-hide-table-rows.html
1206
1207         * dom/NodeRenderingContext.cpp:
1208         (WebCore::NodeRendererFactory::createRendererAndStyle): Moved style-creating code into createRendererIfNeeded, renamed
1209             to createRenderer.
1210         (WebCore::NodeRendererFactory::createRendererIfNeeded): Re-arrange code to avoid unnecessary creation of renderers.
1211
1212 2011-09-11  Jeremy Moskovich  <jeremy@chromium.org>
1213
1214         [Chromium] Change OOP Font loading code to use CGFont*() APIs.
1215         https://bugs.webkit.org/show_bug.cgi?id=66935
1216
1217         This change is necessary due a bug in ATSFontDeactivate() on 10.7.
1218         See crbug.com/93191 for details.
1219
1220         Reviewed by Eric Seidel.
1221
1222         No new tests - covered by existing tests.
1223
1224         * platform/chromium/PlatformBridge.h:
1225         * platform/graphics/chromium/CrossProcessFontLoading.h:
1226         * platform/graphics/chromium/CrossProcessFontLoading.mm:
1227         (WebCore::MemoryActivatedFont::create):
1228         (WebCore::MemoryActivatedFont::MemoryActivatedFont):
1229         (WebCore::MemoryActivatedFont::~MemoryActivatedFont):
1230
1231 2011-09-09  Oliver Hunt  <oliver@apple.com>
1232
1233         Remove support for anonymous storage from jsobjects
1234         https://bugs.webkit.org/show_bug.cgi?id=67881
1235
1236         Reviewed by Sam Weinig.
1237
1238         Remove all use of anonymous slots, this required modifying
1239         bindings generation to add member variables for cached attributes,
1240         and override visitChildren with the necessary logic to mark those
1241         new members.
1242
1243         I added bindings generation tests for these values.
1244
1245         * bindings/js/JSAudioConstructor.h:
1246         (WebCore::JSAudioConstructor::createStructure):
1247         * bindings/js/JSDOMBinding.h:
1248         (WebCore::DOMConstructorObject::createStructure):
1249         * bindings/js/JSDOMGlobalObject.h:
1250         (WebCore::JSDOMGlobalObject::createStructure):
1251         * bindings/js/JSDOMWindowBase.h:
1252         (WebCore::JSDOMWindowBase::createStructure):
1253         * bindings/js/JSDOMWindowShell.h:
1254         (WebCore::JSDOMWindowShell::createStructure):
1255         * bindings/js/JSDOMWrapper.h:
1256         (WebCore::JSDOMWrapper::createStructure):
1257         * bindings/js/JSImageConstructor.h:
1258         (WebCore::JSImageConstructor::createStructure):
1259         * bindings/js/JSMessageEventCustom.cpp:
1260         (WebCore::JSMessageEvent::data):
1261         (WebCore::JSMessageEvent::initMessageEvent):
1262         * bindings/js/JSOptionConstructor.h:
1263         (WebCore::JSOptionConstructor::createStructure):
1264         * bindings/js/JSWorkerContextBase.h:
1265         (WebCore::JSWorkerContextBase::createStructure):
1266         * bindings/scripts/CodeGeneratorJS.pm:
1267         (GenerateHeader):
1268         (GenerateImplementation):
1269         (GenerateConstructorDeclaration):
1270         * bindings/scripts/test/JS/JSTestInterface.cpp:
1271         (WebCore::JSTestInterfaceConstructor::createStructure):
1272         * bindings/scripts/test/JS/JSTestInterface.h:
1273         (WebCore::JSTestInterface::createStructure):
1274         (WebCore::JSTestInterfacePrototype::createStructure):
1275         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
1276         (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
1277         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
1278         (WebCore::JSTestMediaQueryListListener::createStructure):
1279         (WebCore::JSTestMediaQueryListListenerPrototype::createStructure):
1280         * bindings/scripts/test/JS/JSTestObj.cpp:
1281         (WebCore::JSTestObjConstructor::createStructure):
1282         (WebCore::jsTestObjCachedAttribute1):
1283         (WebCore::jsTestObjCachedAttribute2):
1284         (WebCore::JSTestObj::visitChildren):
1285         * bindings/scripts/test/JS/JSTestObj.h:
1286         (WebCore::JSTestObj::createStructure):
1287         (WebCore::JSTestObjPrototype::createStructure):
1288         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
1289         (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
1290         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
1291         (WebCore::JSTestSerializedScriptValueInterface::createStructure):
1292         (WebCore::JSTestSerializedScriptValueInterfacePrototype::createStructure):
1293         * bindings/scripts/test/TestObj.idl:
1294         * bindings/scripts/test/V8/V8TestObj.cpp:
1295         (WebCore::TestObjInternal::cachedAttribute1AttrGetter):
1296         (WebCore::TestObjInternal::cachedAttribute2AttrGetter):
1297         * bridge/c/CRuntimeObject.h:
1298         (JSC::Bindings::CRuntimeObject::createStructure):
1299         * bridge/c/c_instance.cpp:
1300         (JSC::Bindings::CRuntimeMethod::createStructure):
1301         * bridge/jni/jsc/JavaInstanceJSC.cpp:
1302         (JavaRuntimeMethod::createStructure):
1303         * bridge/jni/jsc/JavaRuntimeObject.h:
1304         (JSC::Bindings::JavaRuntimeObject::createStructure):
1305         * bridge/objc/ObjCRuntimeObject.h:
1306         (JSC::Bindings::ObjCRuntimeObject::createStructure):
1307         * bridge/objc/objc_instance.mm:
1308         (ObjCRuntimeMethod::createStructure):
1309         * bridge/objc/objc_runtime.h:
1310         (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
1311         * bridge/runtime_array.h:
1312         (JSC::RuntimeArray::createStructure):
1313         * bridge/runtime_method.h:
1314         (JSC::RuntimeMethod::createStructure):
1315         * bridge/runtime_object.h:
1316         (JSC::Bindings::RuntimeObject::createStructure):
1317
1318 2011-09-01  Filip Pizlo  <fpizlo@apple.com>
1319
1320         The executable allocator makes it difficult to free individual
1321         chunks of executable memory
1322         https://bugs.webkit.org/show_bug.cgi?id=66363
1323
1324         Reviewed by Oliver Hunt.
1325         
1326         Introduced a best-fit, balanced-tree based allocator. The allocator
1327         required a balanced tree that does not allocate memory and that
1328         permits the removal of individual nodes directly (as opposed to by
1329         key); neither AVLTree nor WebCore's PODRedBlackTree supported this.
1330         Changed all references to executable code to use a reference counted
1331         handle.
1332
1333         No new layout tests because behavior is not changed.  New API unit
1334         tests:
1335         Tests/WTF/RedBlackTree.cpp
1336         Tests/WTF/MetaAllocator.cpp
1337
1338         * ForwardingHeaders/wtf/MetaAllocatorHandle.h: Added.
1339
1340 2011-09-10  Sam Weinig  <sam@webkit.org>
1341
1342         Add isInterruptedExecutionException and isTerminatedExecutionException predicates
1343         https://bugs.webkit.org/show_bug.cgi?id=67892
1344
1345         Reviewed by Andy "First Time Reviewer" Estes.
1346
1347         * bindings/js/JSDOMBinding.cpp:
1348         (WebCore::reportException):
1349         * bindings/js/JSEventListener.cpp:
1350         (WebCore::JSEventListener::handleEvent):
1351         * bindings/js/WorkerScriptController.cpp:
1352         (WebCore::WorkerScriptController::evaluate):
1353         Use the new predicates instead of probing the ClassInfo directly.
1354
1355 2011-09-10  Kevin Ollivier  <kevino@theolliviers.com>
1356
1357         [wx] Unreviewed build fix. MSW build fixes.
1358
1359         * config.h:
1360
1361 2011-09-09  David Hyatt  <hyatt@apple.com>
1362
1363         https://bugs.webkit.org/show_bug.cgi?id=67861
1364         
1365         Implement border-image-outset (and the mask equivalents).
1366
1367         Reviewed by Beth Dakin.
1368
1369         Added new tests in fast/borders and fast/reflections.
1370
1371         * css/CSSBorderImageValue.cpp:
1372         (WebCore::CSSBorderImageValue::CSSBorderImageValue):
1373         (WebCore::CSSBorderImageValue::cssText):
1374         * css/CSSBorderImageValue.h:
1375         (WebCore::CSSBorderImageValue::create):
1376         Add m_outset field to CSSBorderImageValue and teach it how to dump the field as
1377         part of cssText().
1378
1379         * css/CSSComputedStyleDeclaration.cpp:
1380         (WebCore::valueForNinePieceImageQuad):
1381         (WebCore::valueForNinePieceImage):
1382         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1383         Add support for border-image-outset and -webkit-mask-box-image-outset. Refactor
1384         the code so that border-image-width and border-image-outset use a common
1385         function.
1386
1387         * css/CSSParser.cpp:
1388         (WebCore::CSSParser::parseValue):
1389         (WebCore::BorderImageParseContext::BorderImageParseContext):
1390         (WebCore::BorderImageParseContext::allowOutset):
1391         (WebCore::BorderImageParseContext::commitSlash):
1392         (WebCore::BorderImageParseContext::commitBorderWidth):
1393         (WebCore::BorderImageParseContext::commitBorderOutset):
1394         (WebCore::BorderImageParseContext::commitRepeat):
1395         (WebCore::BorderImageParseContext::commitBorderImage):
1396         (WebCore::CSSParser::parseBorderImage):
1397         Teach the border image parsing code about outsets. This code will soon be
1398         replaced by true shorthand parsing code, but for now keep it working and add
1399         outset support to it.
1400
1401         (WebCore::BorderImageQuadParseContext::BorderImageQuadParseContext):
1402         (WebCore::BorderImageQuadParseContext::commitBorderImageQuad):
1403         (WebCore::CSSParser::parseBorderImageQuad):
1404         (WebCore::CSSParser::parseBorderImageWidth):
1405         (WebCore::CSSParser::parseBorderImageOutset):
1406         * css/CSSParser.h:
1407         Refactor the border-image-width code so that it can be shared by border-image-outset, since
1408         they are extremely similar.
1409
1410         * css/CSSPropertyNames.in:
1411         Add the new properties.
1412
1413         * css/CSSStyleSelector.cpp:
1414         (WebCore::CSSStyleSelector::applyProperty):
1415         (WebCore::CSSStyleSelector::mapNinePieceImage):
1416         (WebCore::CSSStyleSelector::mapNinePieceImageQuad):
1417         (WebCore::CSSStyleSelector::loadPendingImages):
1418         * css/CSSStyleSelector.h:
1419         Refactor the code so that width/outset share common mapping functions. Add support for outset.
1420
1421         * rendering/InlineFlowBox.cpp:
1422         (WebCore::InlineFlowBox::addToLine):
1423         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
1424         (WebCore::InlineFlowBox::addBorderOutsetVisualOverflow):
1425         (WebCore::InlineFlowBox::computeOverflow):
1426         Add new functions for computing the visual overflow caused by border outsets. Fix bugs in
1427         the shadow overflow code as well.
1428
1429         (WebCore::clipRectForNinePieceImageStrip):
1430         (WebCore::InlineFlowBox::paintBoxDecorations):
1431         (WebCore::InlineFlowBox::paintMask):
1432         * rendering/InlineFlowBox.h:
1433         Make sure the clip rect pushed when painting one piece of a split inline strip is expanded to
1434         include the border and mask outsets. Always include the block direction expansion, and conditionally
1435         include the inline direction expansion based off includeLogicalLeftEdge()/includeLogicalRightEdge().
1436         clipRectForNinePieceImageStrip is a common function shared by masks and border images that does this
1437         work.
1438
1439         * rendering/RenderBlock.cpp:
1440         (WebCore::RenderBlock::computeOverflow):
1441         * rendering/RenderBox.cpp:
1442         (WebCore::RenderBox::maskClipRect):
1443         (WebCore::RenderBox::addBoxShadowAndBorderOverflow):
1444         * rendering/RenderBox.h:
1445         Rename addShadowOverflow to addBoxShadowAndBorderOverflow. Have it compute both shadow and border image
1446         outset overflow. Fix bugs with shadow overflow computation.
1447
1448         * rendering/RenderBoxModelObject.cpp:
1449         (WebCore::RenderBoxModelObject::paintNinePieceImage):
1450         Change painting to apply the outsets to inflate the border image drawing area.
1451
1452         * rendering/RenderEmbeddedObject.cpp:
1453         (WebCore::RenderEmbeddedObject::layout):
1454         * rendering/RenderIFrame.cpp:
1455         (WebCore::RenderIFrame::layout):
1456         Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
1457
1458         * rendering/RenderLayer.cpp:
1459         (WebCore::RenderLayer::calculateRects):
1460         Patched to no longer apply box-shadow to overflow clip areas when inflating the intersection area for the
1461         layer bounds. Instead we generically apply all visual overflow so that border image outsets will also be
1462         included. This fixes https://bugs.webkit.org/show_bug.cgi?id=37467.
1463
1464         * rendering/RenderReplaced.cpp:
1465         (WebCore::RenderReplaced::layout):
1466         Patched to call the renamed addBoxShadowAndBorderOverflow function instead of addShadowOverflow.
1467
1468         * rendering/style/NinePieceImage.cpp:
1469         (WebCore::NinePieceImage::operator==):
1470         * rendering/style/NinePieceImage.h:
1471         (WebCore::NinePieceImage::NinePieceImage):
1472         (WebCore::NinePieceImage::outset):
1473         (WebCore::NinePieceImage::setOutset):
1474         (WebCore::NinePieceImage::computeOutset):
1475         (WebCore::NinePieceImage::copyOutsetFrom):
1476         Add the outset field to NinePieceImage along with some helpers for manipulating outsets.
1477
1478         * rendering/style/RenderStyle.cpp:
1479         (WebCore::RenderStyle::getImageOutsets):
1480         (WebCore::RenderStyle::getImageHorizontalOutsets):
1481         (WebCore::RenderStyle::getImageVerticalOutsets):
1482         * rendering/style/RenderStyle.h:
1483         (WebCore::InheritedFlags::hasBorderImageOutsets):
1484         (WebCore::InheritedFlags::getBorderImageOutsets):
1485         (WebCore::InheritedFlags::getBorderImageHorizontalOutsets):
1486         (WebCore::InheritedFlags::getBorderImageVerticalOutsets):
1487         (WebCore::InheritedFlags::getBorderImageInlineDirectionOutsets):
1488         (WebCore::InheritedFlags::getBorderImageBlockDirectionOutsets):
1489         (WebCore::InheritedFlags::getImageInlineDirectionOutsets):
1490         (WebCore::InheritedFlags::getImageBlockDirectionOutsets):
1491         Helpers for outset computation used by painting and overflow functions.
1492
1493 2011-09-10  Dan Bernstein  <mitz@apple.com>
1494
1495         Actually prevent unnecessary casts to MediaControls*.
1496
1497         Reviewed by Oliver Hunt.
1498
1499         * html/shadow/MediaControls.h:
1500
1501 2011-09-10  Ryosuke Niwa  <rniwa@webkit.org>
1502
1503         Remove printf added by r94900.
1504
1505         * rendering/RenderLayer.cpp:
1506         (WebCore::RenderLayer::drawPlatformResizerImage):
1507
1508 2011-09-09  Chris Marrin  <cmarrin@apple.com>
1509
1510         requestAnimationFrame doesn't throttle on Mac
1511         https://bugs.webkit.org/show_bug.cgi?id=67171
1512
1513         Reviewed by Simon Fraser.
1514
1515         Changed requestAnimationFrame to use a Timer in ScriptedAnimationController
1516         on Mac, rather than runLoopObservers. The Timer is throttled to fire no
1517         faster than every 15ms. It is behind a WTF_USE_REQUEST_ANIMATION_FRAME_TIMER
1518         flag and can be used by any implementation, but currently it is only enabled
1519         by PLATFORM(MAC).
1520
1521         * dom/ScriptedAnimationController.cpp:
1522         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
1523         (WebCore::ScriptedAnimationController::resume):
1524         (WebCore::ScriptedAnimationController::registerCallback):
1525         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
1526         (WebCore::ScriptedAnimationController::scheduleAnimation):
1527         (WebCore::ScriptedAnimationController::animationTimerFired):
1528         * dom/ScriptedAnimationController.h:
1529         * loader/EmptyClients.h:
1530         * page/Chrome.cpp:
1531         (WebCore::Chrome::scheduleAnimation):
1532         * page/ChromeClient.h:
1533
1534 2011-09-10  Jarred Nicholls  <jarred@sencha.com>
1535
1536         [Qt] QWebSettings::setUserStyleSheetUrl() does not work with windows paths that contain drive letters
1537         https://bugs.webkit.org/show_bug.cgi?id=34884
1538         
1539         KURL::path() alone does not handle removing the leading slash from a windows file path.
1540         Using QUrl::toLocalFile() will turn file:///C:/path into C:/path appropriately.
1541
1542         Reviewed by Andreas Kling.
1543
1544         * platform/qt/KURLQt.cpp:
1545         (WebCore::KURL::fileSystemPath):
1546
1547 2011-09-10  Ken Buchanan <kenrb@chromium.org>
1548
1549         Crash due to bad data in SVGDocumentExtensions m_pendingResources
1550         https://bugs.webkit.org/show_bug.cgi?id=67488
1551
1552         Reviewed by Nikolas Zimmermann.
1553
1554         Resolving a crash condition caused by the deletion of
1555         elements while pending resource entries for those elements are still
1556         recorded.
1557
1558         * rendering/svg/RenderSVGResourceContainer.cpp:
1559         (WebCore::RenderSVGResourceContainer::registerResource)
1560         * svg/SVGDocumentExtensions.h:
1561         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
1562         * svg/SVGDocumentExtensions.cpp:
1563         (WebCore::SVGDocumentExtensions::addPendingResource)
1564         (WebCore::SVGDocumentExtensions::isElementInPendingResources)
1565         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources)
1566         * svg/SVGStyledElement.h:
1567         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
1568         * svg/SVGStyledElement.cpp:
1569         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded)
1570         (WebCore::SVGStyledElement::clearHasPendingResourcesIfPossible)
1571         * svg/SVGUseElement.cpp:
1572         (WebCore::SVGUseElement::svgAttributeChanged)
1573
1574 2011-09-10  Adam Barth  <abarth@webkit.org>
1575
1576         Remove DocumentWriter::deprecatedFrameEncoding()
1577         https://bugs.webkit.org/show_bug.cgi?id=67882
1578
1579         Reviewed by Eric Seidel.
1580
1581         Three years ago, in http://trac.webkit.org/changeset/39026, Alexey
1582         Proskuryakov added ContentDispositionEncodingFallbackArray to work
1583         around a web site compatibility issue with a non-ASCII file name
1584         becoming garbled when received in the Content-Disposition header.
1585
1586         Since that time, there has been copious discussion of this topic among
1587         browser vendors, in the IETF, and in the broader web community.  For
1588         example, here is a Stack Overflow thread about this topic:
1589
1590         http://stackoverflow.com/questions/93551/how-to-encode-the-filename-parameter-of-content-disposition-header-in-http
1591
1592         Eric Lawrence has written a blog post that summarizes IE's perspective
1593         on this issue:
1594
1595         http://blogs.msdn.com/b/ieinternals/archive/2010/06/07/content-disposition-attachment-and-international-unicode-characters.aspx
1596
1597         The current consensus is that browsers should implement RFC 6266,
1598         which is a new RFC that updates the definition of the
1599         Content-Disposition header.  Chrome and Firefox have both implemented
1600         RFC 6266 and have encountered only one issue, which was then fixed by
1601         the web site operator.  IE has also implemented RFC 6266, but I don't
1602         have detailed information about their compatibility experience.
1603
1604         This patch add explicit PLATFORM #ifdefs around the quirky
1605         implementation previously used in Apple's Mac and Windows ports.  This
1606         code is already only used on Apple's ports, so this patch introduces no
1607         functional changes.  It does, however, discourage other ports from
1608         adopting this quirk.  IMHO, Apple should remove this quirk as soon as
1609         compatibility allows and converge behavior with the other major browser
1610         vendors.
1611
1612         See bug for manual test (the bug manifests in Safari download UI).
1613
1614         * loader/DocumentWriter.cpp:
1615         * loader/DocumentWriter.h:
1616         * loader/FrameLoader.cpp:
1617         (WebCore::FrameLoader::addExtraFieldsToRequest):
1618         * platform/network/ResourceRequestBase.cpp:
1619         (WebCore::ResourceRequestBase::adopt):
1620         (WebCore::ResourceRequestBase::copyData):
1621         * platform/network/ResourceRequestBase.h:
1622
1623 2011-09-09  Beth Dakin  <bdakin@apple.com>
1624
1625         Attempted Leopard build fix.
1626
1627         * rendering/RenderImage.cpp:
1628         (WebCore::RenderImage::paintReplaced):
1629         * rendering/RenderLayer.cpp:
1630         (WebCore::RenderLayer::drawPlatformResizerImage):
1631
1632 2011-09-09  Beth Dakin  <bdakin@apple.com>
1633
1634         Fix for https://bugs.webkit.org/show_bug.cgi?id=67819
1635         Use high resolution platform images when the deviceScaleFactor > 1
1636         -and corresponding-
1637         <rdar://problem/10003098>
1638
1639         Reviewed by Darin Adler.
1640
1641         Add all of the new high resolution images. I also removed some tiffs from the 
1642         project and replaced them with png equivalents (that are already checked into 
1643         WebCore anyway). Since the high resolution images are pngs, it makes sense to use 
1644         pngs for all of the images that load through Image::loadPlatformResource()
1645         * WebCore.xcodeproj/project.pbxproj:
1646         * platform/graphics/mac/ImageMac.mm:
1647         (WebCore::Image::loadPlatformResource):
1648
1649         Load the @2x resource for deviceScaleFactors >= 2.
1650         * editing/DeleteButtonController.cpp:
1651         (WebCore::DeleteButtonController::createDeletionUI):
1652
1653         CachedImage::brokenImage() is no longer a static helper function, but a real 
1654         member function. It also now loads the @2x resource for deviceScaleFactors >= 2 
1655         and takes a parameter for the deviceScaleFactor. When CachedImage::image() returns 
1656         the brokenImage(), it just returns the 1x version. brokenImage() has to be called 
1657         directly to reliably return the deviceScaleFactor-appropriate resource.
1658         * loader/cache/CachedImage.cpp:
1659         (WebCore::CachedImage::brokenImage):
1660         (WebCore::CachedImage::image):
1661         * loader/cache/CachedImage.h:
1662         * rendering/RenderLayer.cpp:
1663         (WebCore::RenderLayer::drawPlatformResizerImage):
1664         (WebCore::RenderLayer::paintResizer):
1665         * rendering/RenderLayer.h:
1666
1667         New static function to retrieve the deviceScaleFactor for callers that do not have 
1668         direct access to a Page.
1669         * page/Page.cpp:
1670         (WebCore::Page::deviceScaleFactor):
1671         * page/Page.h:
1672
1673         Call CachedImage::brokenImage() for the broken-image image at an accurate 
1674         resolution.
1675         * rendering/RenderImage.cpp:
1676         (WebCore::RenderImage::imageSizeForError):
1677         (WebCore::RenderImage::paintReplaced):
1678
1679 2011-09-09  Erik Arvidsson  <arv@chromium.org>
1680
1681         Move Element.contains to Node
1682         https://bugs.webkit.org/show_bug.cgi?id=67651
1683
1684         Reviewed by Darin Adler.
1685
1686         This moves the contains method from Element to Node as in the DOM4 working draft: 
1687         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
1688
1689         This also special cases Document contains to make it O(1) instead of O(depth).
1690
1691         Tests: fast/dom/Node/contains-method.html
1692                perf/document-contains.html
1693
1694         * bindings/objc/PublicDOMInterfaces.h: Move contains from DOMElement to DOMNode.
1695         * dom/Element.idl:
1696         * dom/Node.cpp:
1697         (WebCore::Node::contains): Added document special case.
1698         * dom/Node.idl:
1699         * editing/DeleteSelectionCommand.cpp:
1700         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
1701
1702 2011-09-09  Tim Horton  <timothy_horton@apple.com>
1703
1704         Text rendered with a simple (i.e. 0px blur) shadow inside a transparency layer has a double shadow
1705         https://bugs.webkit.org/show_bug.cgi?id=67543
1706         <rdar://problem/10070536>
1707
1708         Reviewed by Darin Adler.
1709
1710         Generalize (begin|end)TransparencyLayer, which now forward
1711         through to (begin|end)PlatformTransparencyLayer, so that
1712         isInTransparencyLayer can exist on every platform.
1713
1714         Make use of isInTransparencyLayer in FontMac to disable
1715         "simple" shadow drawing when the text is being rendered
1716         into a transparency layer.
1717
1718         Test: svg/custom/simple-text-double-shadow.svg
1719
1720         * platform/graphics/GraphicsContext.cpp:
1721         (WebCore::GraphicsContext::GraphicsContext):
1722         (WebCore::GraphicsContext::~GraphicsContext):
1723         (WebCore::GraphicsContext::beginTransparencyLayer):
1724         (WebCore::GraphicsContext::endTransparencyLayer):
1725         (WebCore::GraphicsContext::isInTransparencyLayer):
1726         * platform/graphics/GraphicsContext.h:
1727         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1728         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1729         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1730         (WebCore::GraphicsContext::supportsTransparencyLayers):
1731         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
1732         * platform/graphics/cg/GraphicsContextCG.cpp:
1733         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1734         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1735         (WebCore::GraphicsContext::supportsTransparencyLayers):
1736         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
1737         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
1738         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
1739         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1740         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1741         (WebCore::GraphicsContext::supportsTransparencyLayers):
1742         * platform/graphics/mac/FontMac.mm:
1743         (WebCore::Font::drawGlyphs):
1744         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
1745         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1746         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1747         (WebCore::GraphicsContext::supportsTransparencyLayers):
1748         * platform/graphics/qt/GraphicsContextQt.cpp:
1749         (WebCore::GraphicsContext::isInTransparencyLayer):
1750         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1751         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1752         (WebCore::GraphicsContext::supportsTransparencyLayers):
1753         * platform/graphics/skia/GraphicsContextSkia.cpp:
1754         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1755         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1756         (WebCore::GraphicsContext::supportsTransparencyLayers):
1757         * platform/graphics/win/FontCGWin.cpp:
1758         (WebCore::drawGDIGlyphs):
1759         * platform/graphics/win/GraphicsContextCGWin.cpp:
1760         (WebCore::GraphicsContext::releaseWindowsContext):
1761         * platform/graphics/win/GraphicsContextCairoWin.cpp:
1762         (WebCore::GraphicsContext::releaseWindowsContext):
1763         * platform/graphics/win/GraphicsContextWin.cpp:
1764         (WebCore::GraphicsContext::getWindowsContext):
1765         * platform/graphics/wince/GraphicsContextWinCE.cpp:
1766         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1767         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1768         (WebCore::GraphicsContext::supportsTransparencyLayers):
1769         * platform/graphics/wx/GraphicsContextWx.cpp:
1770         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
1771         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
1772         (WebCore::GraphicsContext::supportsTransparencyLayers):
1773         * platform/win/ScrollbarThemeWin.cpp:
1774         * plugins/win/PluginViewWin.cpp:
1775         * rendering/RenderThemeWin.cpp:
1776
1777 2011-09-09  Julien Chaffraix  <jchaffraix@webkit.org>
1778
1779         [V8] V8WebKitPoint::constructorCallback leaks
1780         https://bugs.webkit.org/show_bug.cgi?id=67865
1781
1782         Reviewed by Adam Barth.
1783
1784         Covered by fast/js/instanceof-XMLHttpRequest.html under Valgrind.
1785
1786         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
1787         (WebCore::V8WebKitPoint::constructorCallback): Changed the code
1788         to use a RefPtr (per our usual style). Also use toV8 that will
1789         take care of properly wrapping the object.
1790
1791 2011-09-09  Chris Rogers  <crogers@google.com>
1792
1793         HRTFDatabaseLoader should not call WTF::waitForThreadCompletion() more than once
1794         https://bugs.webkit.org/show_bug.cgi?id=67866
1795
1796         Reviewed by David Levin.
1797
1798         No new tests since this is difficult to test.
1799         This is designed to fix existing webaudio layout test failures.
1800
1801         * platform/audio/HRTFDatabaseLoader.cpp:
1802         (WebCore::HRTFDatabaseLoader::HRTFDatabaseLoader):
1803         (WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
1804         (WebCore::HRTFDatabaseLoader::loadAsynchronously):
1805         (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
1806         * platform/audio/HRTFDatabaseLoader.h:
1807
1808 2011-09-09  Jessie Berlin  <jberlin@apple.com>
1809
1810         Cookies are not available after turning off Private Browsing after the last window has been
1811         closed.
1812         https://bugs.webkit.org/show_bug.cgi?id=67874
1813
1814         Reviewed by Darin Adler.
1815
1816         The private browsing storage session is a global setting that is being incorrectly set on a
1817         per-page basis (see http://webkit.org/b/67870).
1818
1819         In this case, the global value was getting out of sync with the per-page setting:
1820         1. The global value was getting set to true when setPrivateBrowsingEnabled(true) was called.
1821         2. All Pages were then closed, destroying their Settings objects.
1822         3. When a new Page was created, a new Settings object was created and its
1823            m_privateBrowsingEnabled value was getting set to false.
1824         4. The WebPage settings were then applied to the new Settings object, resulting in
1825            setPrivateBrowsingEnabled(false) to be called.
1826         5. An if (m_privateBrowsingEnabled == privateBrowsingEnabled) early return prevented the
1827            global value for the storage session from being destroyed.
1828
1829         * page/Settings.cpp:
1830         (WebCore::Settings::setPrivateBrowsingEnabled):
1831         Move the early return to be after setting the global private browsing values, and add a
1832         clearer comment + FIXME.
1833
1834 2011-09-09  Kentaro Hara  <haraken@google.com>
1835
1836         Generate a WebKitCSSMatrix constructor of V8 using the IDL 'Constructor' extended attribute
1837         https://bugs.webkit.org/show_bug.cgi?id=67458
1838
1839         Reviewed by Adam Barth.
1840
1841         Added a 'CallWithNullValue' extended attribute.
1842         If a parameter is optional and missing, 'CallWithDefaultValue'
1843         handles it as a string "undefined". On the other hand,
1844         'CallWithNullValue' handles it as a null string
1845         (Note: not a string "null", but a null string).
1846
1847         Tests: fast/dom/Window/custom-constructors.html
1848                transforms/svg-vs-css.xhtml
1849                transforms/cssmatrix-2d-interface.xhtml
1850                transforms/cssmatrix-3d-interface.xhtmlGenerate a WebKitCSSMatrix constructor
1851
1852         * WebCore.gypi: Removed V8WebKitCSSMatrixConstructor.cpp.
1853         * WebCore.pro: Removed V8WebKitCSSMatrixConstructor.cpp.
1854         * bindings/scripts/CodeGeneratorV8.pm:
1855         (GenerateParametersCheck): If the 'CallWithNullValue' extended attribute is set, we call MAYBE_MISSING_PARAMETER() with MissingIsEmpty mode to obtain a maybe missing parameter. Otherwise, we call MAYBE_MISSING_PARAMETER() with MissingIsUndefined mode.
1856         (RequiresCustomSignature):
1857         * bindings/scripts/test/V8/V8TestInterface.cpp: Updated test results.
1858         (WebCore::V8TestInterface::constructorCallback):
1859         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp: Ditto.
1860         (WebCore::TestMediaQueryListListenerInternal::methodCallback):
1861         * bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
1862         (WebCore::TestObjInternal::voidMethodWithArgsCallback):
1863         (WebCore::TestObjInternal::intMethodWithArgsCallback):
1864         (WebCore::TestObjInternal::objMethodWithArgsCallback):
1865         (WebCore::TestObjInternal::methodThatRequiresAllArgsCallback):
1866         (WebCore::TestObjInternal::methodThatRequiresAllArgsAndThrowsCallback):
1867         (WebCore::TestObjInternal::optionsObjectCallback):
1868         (WebCore::TestObjInternal::customArgsAndExceptionCallback):
1869         (WebCore::TestObjInternal::withDynamicFrameAndArgCallback):
1870         (WebCore::TestObjInternal::withDynamicFrameAndOptionalArgCallback):
1871         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureCallback):
1872         (WebCore::TestObjInternal::withDynamicFrameAndUserGestureASADCallback):
1873         (WebCore::TestObjInternal::methodWithOptionalArgCallback):
1874         (WebCore::TestObjInternal::methodWithNonOptionalArgAndOptionalArgCallback):
1875         (WebCore::TestObjInternal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
1876         (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
1877         (WebCore::TestObjInternal::overloadedMethod1Callback):
1878         (WebCore::TestObjInternal::overloadedMethod2Callback):
1879         (WebCore::TestObjInternal::overloadedMethod3Callback):
1880         (WebCore::TestObjInternal::overloadedMethod4Callback):
1881         (WebCore::TestObjInternal::classMethodWithOptionalCallback):
1882         (WebCore::TestObjInternal::enabledAtRuntimeMethod1Callback):
1883         (WebCore::TestObjInternal::enabledAtRuntimeMethod2Callback):
1884         * bindings/v8/V8Binding.h:
1885         (WebCore::V8ParameterBase::prepareBase): The fact that V8ParameterBase does not have any object means that we do not need to prepare anything, i.e. we should just return true in this case.
1886         (WebCore::::prepare): If V8ParameterBase does not have any object, then we set a null string.
1887         * bindings/v8/custom/V8BindingMacros.h: MAYBE_MISSING_PARAMETER() returns the parameter of a given index if the parameter exists. If the parameter does not exist and MissingIsUndefined is set, this macro returns an object that represents undefined. If the parameter does not exist and MissingIsEmpty is set, this macro returns an empty object.
1888         * bindings/v8/custom/V8WebKitCSSMatrixConstructor.cpp: Removed.
1889         * css/WebKitCSSMatrix.idl: Added the 'Constructor' extended attribute.
1890
1891 2011-09-09  Geoffrey Garen  <ggaren@apple.com>
1892
1893         Reviewed by Dan Bernstein.
1894
1895         Removed ENABLE(SINGLE_THREADED) support, since it is always false
1896         https://bugs.webkit.org/show_bug.cgi?id=67862
1897
1898         Next step toward making the baseline platform assumption that threads exist.
1899
1900         * WebCore.pri:
1901         * features.pri: 
1902         * platform/sql/SQLiteDatabase.cpp:
1903         (WebCore::SQLiteDatabase::interrupt): Removed now-dead code.
1904
1905 2011-09-09  Fady Samuel  <fsamuel@chromium.org>
1906
1907         Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp}
1908         https://bugs.webkit.org/show_bug.cgi?id=67250
1909
1910         Reviewed by Simon Fraser.
1911
1912         No new tests because there's no change in functionality.
1913
1914         * WebCore.exp.in:
1915         * css/CSSStyleSelector.cpp:
1916         (WebCore::CSSStyleSelector::styleForDocument):
1917         * dom/Element.cpp:
1918         (WebCore::Element::getClientRects):
1919         (WebCore::Element::getBoundingClientRect):
1920         * dom/Range.cpp:
1921         (WebCore::adjustFloatQuadsForScrollAndAbsoluteZoomAndPageScale):
1922         * loader/HistoryController.cpp:
1923         (WebCore::HistoryController::restoreScrollPositionAndViewState):
1924         * page/Frame.cpp:
1925         (WebCore::Frame::Frame):
1926         (WebCore::Frame::pageScaleFactor):
1927         * page/Frame.h:
1928         * page/Page.cpp:
1929         (WebCore::Page::Page):
1930         (WebCore::Page::setPageScaleFactor):
1931         * page/Page.h:
1932         (WebCore::Page::pageScaleFactor):
1933         * rendering/RenderLayerCompositor.cpp:
1934         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
1935         (WebCore::RenderLayerCompositor::pageScaleFactor):
1936         * rendering/RenderView.cpp:
1937         (WebCore::RenderView::paintBoxDecorations):
1938
1939 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
1940
1941         AX: Images within anchors causes crash
1942         https://bugs.webkit.org/show_bug.cgi?id=44149
1943
1944         Reviewed by Chris Fleizach.
1945
1946         Fixes the way parent RenderObject of an AccessibilityRenderObject
1947         is computed in the presence of adjacent continuations.
1948
1949         Test: accessibility/div-within-anchors-causes-crash.html
1950
1951         * accessibility/AccessibilityRenderObject.cpp:
1952         (WebCore::AccessibilityRenderObject::renderParentObject):
1953
1954 2011-09-09  Kulanthaivel Palanichamy  <kulanthaivel@codeaurora.org>
1955
1956         CSS rules not being applied when a hidden field is inserted between an input[type=checkbox] and a label
1957         https://bugs.webkit.org/show_bug.cgi?id=66887
1958
1959         Reviewed by David Hyatt.
1960
1961         Test: fast/css/adjacent-sibling-selector.html
1962
1963         This patch addresses the problem of elements not getting their style recomputed
1964         when they are affected by direct adjacent sibling rules and one of their sibling in
1965         their corresponding rules is modified dynamically.
1966
1967         * css/CSSStyleSelector.cpp:
1968         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1969         (WebCore::parentStylePreventsSharing):
1970         * css/SelectorChecker.cpp:
1971         (WebCore::SelectorChecker::checkSelector):
1972         * dom/Element.cpp:
1973         (WebCore::Element::recalcStyle):
1974         (WebCore::checkForSiblingStyleChanges):
1975         * rendering/style/RenderStyle.cpp:
1976         (WebCore::RenderStyle::RenderStyle):
1977         * rendering/style/RenderStyle.h:
1978         (WebCore::InheritedFlags::affectedByDirectAdjacentRules):
1979         (WebCore::InheritedFlags::setAffectedByDirectAdjacentRules):
1980
1981 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
1982
1983         Make the EFL port use the correct rendering file.
1984         https://bugs.webkit.org/show_bug.cgi?id=66323
1985
1986         Reviewed by Martin Robinson.
1987
1988         When compiling with Pango support, the EFL port should use
1989         FontPango.cpp instead of FontEfl.cpp (which is just full of stubs).
1990
1991         No new functionality so no new tests.
1992
1993         * CMakeListsEfl.txt:
1994
1995 2011-09-09  Chris Rogers  <crogers@google.com>
1996
1997         AudioBufferSourceNode must validate AudioBuffer in .buffer attribute setter
1998         https://bugs.webkit.org/show_bug.cgi?id=67749
1999
2000         Reviewed by Kenneth Russell.
2001
2002         Test: webaudio/audiobuffersource-channels.html
2003
2004         * WebCore.gypi:
2005         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
2006         (WebCore::JSAudioBufferSourceNode::setBuffer):
2007         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp: Copied from Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp.
2008         (WebCore::V8AudioBufferSourceNode::bufferAccessorSetter):
2009         * webaudio/AudioBufferSourceNode.cpp:
2010         (WebCore::AudioBufferSourceNode::setBuffer):
2011         * webaudio/AudioBufferSourceNode.h:
2012         * webaudio/AudioBufferSourceNode.idl:
2013
2014 2011-09-09  Dan Bernstein  <mitz@apple.com>
2015
2016         RenderBlock::addOverhangingFloats() takes superfluous parameters
2017         https://bugs.webkit.org/show_bug.cgi?id=67863
2018
2019         Reviewed by Dave Hyatt.
2020
2021         No new tests, because behavior is unchanged.
2022
2023         * rendering/RenderBlock.cpp:
2024         (WebCore::RenderBlock::layoutBlock):
2025         (WebCore::RenderBlock::layoutBlockChild):
2026         (WebCore::RenderBlock::addOverhangingFloats): Removed the logical{Left, Top}Offset parameters,
2027         since they were always the inverse of the logical{Left, Top}() of the child parameter.
2028         * rendering/RenderBlock.h:
2029
2030 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
2031
2032         Add replacement functions for gdk ones.
2033         https://bugs.webkit.org/show_bug.cgi?id=66323
2034
2035         Reviewed by Martin Robinson.
2036
2037         This will allow the EFL port to don't depend on gdk anymore.
2038
2039         No new functionality so no new tests.
2040
2041         * CMakeListsEfl.txt:
2042         * platform/graphics/cairo/CairoUtilities.cpp:
2043         (WebCore::appendRegionToCairoContext):
2044         * platform/graphics/cairo/CairoUtilities.h:
2045         * platform/graphics/pango/FontPango.cpp:
2046         (WebCore::drawGlyphsShadow):
2047         (WebCore::Font::drawComplexText):
2048         * platform/graphics/pango/PangoUtilities.cpp: Added.
2049         (WebCore::getLineClipRegionFromLayoutIter):
2050         (WebCore::getClipRegionFromPangoLayoutLine):
2051         * platform/graphics/pango/PangoUtilities.h: Added.
2052
2053 2011-09-09  Mark Hahnenberg  <mhahnenberg@apple.com>
2054
2055         Unzip initialization lists and constructors in JSCell hierarchy (5/7)
2056         https://bugs.webkit.org/show_bug.cgi?id=67420
2057
2058         Reviewed by Geoffrey Garen.
2059
2060         No new tests.
2061
2062         Completed the fifth level of the refactoring to add finishCreation() 
2063         methods to all classes within the JSCell hierarchy with non-trivial 
2064         constructor bodies.
2065
2066         This primarily consists of pushing the calls to finishCreation() down 
2067         into the constructors of the subclasses of the second level of the hierarchy 
2068         as well as pulling the finishCreation() calls out into the class's corresponding
2069         create() method if it has one.  Doing both simultaneously allows us to 
2070         maintain the invariant that the finishCreation() method chain is called exactly 
2071         once during the creation of an object, since calling it any other number of 
2072         times (0, 2, or more) will cause an assertion failure.
2073
2074         * WebCore.exp.in:
2075         * bindings/js/JSDOMBinding.h:
2076         (WebCore::DOMConstructorObject::DOMConstructorObject):
2077         * bindings/js/JSDOMGlobalObject.cpp:
2078         (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
2079         (WebCore::JSDOMGlobalObject::finishCreation):
2080         * bindings/js/JSDOMGlobalObject.h:
2081         * bindings/js/JSDOMWindowShell.cpp:
2082         * bindings/js/JSDOMWindowShell.h:
2083         (WebCore::JSDOMWindowShell::create):
2084         * bindings/js/JSDOMWrapper.h:
2085         (WebCore::JSDOMWrapper::JSDOMWrapper):
2086         * bindings/scripts/CodeGeneratorJS.pm:
2087         (GenerateImplementation):
2088         * bindings/scripts/test/JS/JSTestInterface.cpp:
2089         (WebCore::JSTestInterface::JSTestInterface):
2090         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2091         (WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener):
2092         * bindings/scripts/test/JS/JSTestObj.cpp:
2093         (WebCore::JSTestObj::JSTestObj):
2094         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
2095         (WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface):
2096         * bridge/c/CRuntimeObject.cpp:
2097         (JSC::Bindings::CRuntimeObject::CRuntimeObject):
2098         (JSC::Bindings::CRuntimeObject::finishCreation):
2099         * bridge/c/CRuntimeObject.h:
2100         * bridge/jni/jsc/JavaRuntimeObject.cpp:
2101         (JSC::Bindings::JavaRuntimeObject::JavaRuntimeObject):
2102         (JSC::Bindings::JavaRuntimeObject::finishCreation):
2103         * bridge/jni/jsc/JavaRuntimeObject.h:
2104         * bridge/objc/ObjCRuntimeObject.h:
2105         * bridge/objc/ObjCRuntimeObject.mm:
2106         (JSC::Bindings::ObjCRuntimeObject::ObjCRuntimeObject):
2107         (JSC::Bindings::ObjCRuntimeObject::finishCreation):
2108         * bridge/objc/objc_runtime.h:
2109         (JSC::Bindings::ObjcFallbackObjectImp::create):
2110         * bridge/objc/objc_runtime.mm:
2111         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
2112         * bridge/qt/qt_instance.cpp:
2113         (JSC::Bindings::QtRuntimeObject::QtRuntimeObject):
2114         * bridge/qt/qt_pixmapruntime.cpp:
2115         (JSC::Bindings::QtPixmapRuntimeObject::QtPixmapRuntimeObject):
2116         * bridge/qt/qt_runtime.cpp:
2117         (JSC::Bindings::QtRuntimeMethod::QtRuntimeMethod):
2118         (JSC::Bindings::QtRuntimeMethod::finishCreation):
2119         * bridge/qt/qt_runtime.h:
2120         * bridge/runtime_array.cpp:
2121         (JSC::RuntimeArray::RuntimeArray):
2122         * bridge/runtime_array.h:
2123         (JSC::RuntimeArray::create):
2124         * bridge/runtime_method.cpp:
2125         (JSC::RuntimeMethod::RuntimeMethod):
2126         (JSC::RuntimeMethod::finishCreation):
2127         * bridge/runtime_method.h:
2128         * bridge/runtime_object.cpp:
2129         (JSC::Bindings::RuntimeObject::RuntimeObject):
2130         * bridge/runtime_object.h:
2131         (JSC::Bindings::RuntimeObject::create):
2132
2133 2011-09-09  Rafael Antognolli  <antognolli@profusion.mobi>
2134
2135         Rename FontGtk.cpp to FontPango.cpp
2136         https://bugs.webkit.org/show_bug.cgi?id=66323
2137
2138         Reviewed by Martin Robinson.
2139
2140         This file will be used by the EFL port too, and since it's not GTK
2141         specific anymore, rename it to something better.
2142
2143         No new functionality so no new tests.
2144
2145         * GNUmakefile.list.am:
2146         * platform/graphics/pango/FontPango.cpp: Renamed from Source/WebCore/platform/graphics/gtk/FontGtk.cpp.
2147
2148 2011-09-09  Adam Klein  <adamk@chromium.org>
2149
2150         Initialize ExceptionCode in Element::removeAttribute
2151         https://bugs.webkit.org/show_bug.cgi?id=67820
2152
2153         Reviewed by Darin Adler.
2154
2155         Silences valgrind warning reported in http://crbug.com/76490.
2156
2157         No new tests since this would only very occasionally be flaky,
2158         and in the codepath in the valgrind report, the ec is ignored anyway.
2159
2160         * dom/Element.cpp:
2161         (WebCore::Element::removeAttribute): Initialize ec to 0.
2162
2163 2011-09-09  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2164
2165         [Qt] Remove common.pri
2166         https://bugs.webkit.org/show_bug.cgi?id=67814
2167
2168         Reviewed by Andreas Kling.
2169
2170         No new tests, no change in functionality.
2171
2172         * CodeGenerators.pri:
2173         * WebCore.pri:
2174
2175 2011-09-09  Dominic Mazzoni  <dmazzoni@google.com>
2176
2177         Assert being hit in AccessibilityRenderObject::addChildren()
2178         https://bugs.webkit.org/show_bug.cgi?id=61805
2179
2180         Reviewed by Chris Fleizach.
2181
2182         Fix nextSibling and previousSibling to handle adjacent continuations
2183         properly, otherwise nodes end up appearing in the accessibility
2184         tree twice (or a debug assertion could be raised).
2185
2186         Test: accessibility/adjacent-continuations-cause-assertion-failure.html
2187
2188         * accessibility/AccessibilityRenderObject.cpp:
2189         (WebCore::AccessibilityRenderObject::previousSibling):
2190         (WebCore::AccessibilityRenderObject::nextSibling):
2191
2192 2011-09-08  Kentaro Hara  <haraken@google.com>
2193
2194         Implement a WebKitAnimationEvent constructor.
2195         https://bugs.webkit.org/show_bug.cgi?id=67825
2196
2197         Reviewed by Sam Weinig.
2198
2199         There is no spec for the WebKitAnimationEvent constructor
2200         since it is WebKit-specific. However, based on the current
2201         IDL of initWebKitAnimationEvent(), the constructor IDL
2202         should be as follows.
2203
2204         [Constructor(DOMString type, optional WebKitAnimationEventInit eventInitDict)]
2205         interface WebKitAnimationEvent : Event {
2206             ...;
2207         }
2208
2209         dictionary WebKitAnimationEventInit : EventInit {
2210             DOMString animationName;
2211             double elapsedTime;
2212         }
2213
2214         Test: fast/events/constructors/webkit-animation-event-constructor.html
2215
2216         * bindings/generic/EventConstructors.h: Added a definition for the WebKitAnimationEvent constructor.
2217         * bindings/js/JSEventConstructors.cpp: Added #includes for WebKitAnimationEvent.
2218         * dom/WebKitAnimationEvent.cpp:
2219         (WebCore::WebKitAnimationEventInit::WebKitAnimationEventInit):
2220         (WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
2221         * dom/WebKitAnimationEvent.h: Added a definition for WebKitAnimationEventInit.
2222         (WebCore::WebKitAnimationEvent::create):
2223         * dom/WebKitAnimationEvent.idl: Makes WebKitAnimationEvent constructible.
2224
2225 2011-09-08  Abhishek Arya  <inferno@chromium.org>
2226
2227         :before content rendering issues with list markers and run-ins.
2228         https://bugs.webkit.org/show_bug.cgi?id=67735
2229
2230         1) Remove the isAnonymous checks for run-in detection since the
2231         run-in can belong to a node.
2232         2) When the parent has block children, then the list marker will
2233         be enclosed in an anonymous block. In that case, for going to the
2234         next list marker, we need to traverse one level up. We don't need
2235         this check when searching for generated run-in (loop 2), since we
2236         know parent will have inline children, so the list marker wont be
2237         enclosed in an anonymous block.
2238
2239         Reviewed by Dave Hyatt.
2240
2241         Tests: fast/lists/list-marker-before-content-table.html
2242                fast/runin/runin-generated-before-content.html
2243
2244         * rendering/RenderObjectChildList.cpp:
2245         (WebCore::RenderObjectChildList::beforePseudoElementRenderer):
2246
2247 2011-09-09  Pavel Podivilov  <podivilov@chromium.org>
2248
2249         Web Inspector: introduce JavaScriptSourceFrame class.
2250         https://bugs.webkit.org/show_bug.cgi?id=67838
2251
2252         SourceFrame should not deal with JavaScript debugging since it is a base class for all source frame implementations.
2253
2254         Reviewed by Pavel Feldman.
2255
2256         * WebCore.gypi:
2257         * WebCore.vcproj/WebCore.vcproj:
2258         * inspector/front-end/JavaScriptSourceFrame.js: Added.
2259         (WebInspector.JavaScriptSourceFrame):
2260         (WebInspector.SourceFrameDelegateForScriptsPanel): moved from ScriptsPanel.js
2261         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.requestContent):
2262         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggingSupported):
2263         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setBreakpoint):
2264         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.updateBreakpoint):
2265         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.removeBreakpoint):
2266         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.findBreakpoint):
2267         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.continueToLine):
2268         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.canEditScriptSource):
2269         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSource):
2270         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.setScriptSourceIsBeingEdited):
2271         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.debuggerPaused):
2272         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.evaluateInSelectedCallFrame):
2273         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.releaseEvaluationResult):
2274         (WebInspector.SourceFrameDelegateForScriptsPanel.prototype.suggestedFileName):
2275         * inspector/front-end/ScriptsPanel.js:
2276         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
2277         * inspector/front-end/WebKit.qrc:
2278         * inspector/front-end/inspector.html:
2279
2280 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
2281
2282         Unreviewed, rolling out r94845.
2283         http://trac.webkit.org/changeset/94845
2284         https://bugs.webkit.org/show_bug.cgi?id=67839
2285
2286         This patch kicked Qt-SL bots, but we don't need this
2287         modification. (Requested by ossy_ on #webkit).
2288
2289         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2290         * platform/mac/WebVideoFullscreenController.mm:
2291         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
2292
2293 2011-09-09  Csaba Osztrogon√°c  <ossy@webkit.org>
2294
2295         [Qt][Mac]REGRESSION(r94774): Build is broken
2296         https://bugs.webkit.org/show_bug.cgi?id=67799
2297
2298         It seems these files didn't rebuilt because of a
2299         dependency bug. Touch them to trigger a rebuild.
2300
2301         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2302         * platform/mac/WebVideoFullscreenController.mm:
2303         * platform/mac/WebVideoFullscreenHUDWindowController.mm:
2304
2305 2011-09-09  Alexander Pavlov  <apavlov@chromium.org>
2306
2307         Unreviewed, Chromium valgrind build fix.
2308
2309         Web Inspector: [Chromium] Valgrind signals use of uninitialized field in InspectorStyleSheetForInlineStyle
2310         https://bugs.webkit.org/show_bug.cgi?id=67837
2311
2312         * inspector/InspectorStyleSheet.cpp:
2313         (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
2314
2315 2011-09-09  Sheriff Bot  <webkit.review.bot@gmail.com>
2316
2317         Unreviewed, rolling out r94536.
2318         http://trac.webkit.org/changeset/94536
2319         https://bugs.webkit.org/show_bug.cgi?id=67836
2320
2321         breaks absoluteLocation() of RelatedMouseEvent (Requested by
2322         jknotten on #webkit).
2323
2324         * dom/MouseRelatedEvent.cpp:
2325         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
2326
2327 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
2328
2329         Web Inspector: live edit both for JS and CSS is not discoverable.
2330         https://bugs.webkit.org/show_bug.cgi?id=65962
2331
2332         Add the "Edit" button to SourceFrame, so that resources/scripts can be edited both in the
2333         Resources and the Scripts panels. The button is grayed out if the resource/script is not editable.
2334
2335         Reviewed by Yury Semikhatsky.
2336
2337         * inspector/front-end/Images/statusbarButtonGlyphs.png:
2338         * inspector/front-end/ResourceView.js:
2339         (WebInspector.EditableResourceSourceFrame.prototype.canEditSource):
2340         * inspector/front-end/ScriptsPanel.js:
2341         (WebInspector.ScriptsPanel.prototype.get statusBarItems):
2342         (WebInspector.ScriptsPanel.prototype.set visibleView):
2343         * inspector/front-end/SourceFrame.js:
2344         (WebInspector.SourceFrame):
2345         (WebInspector.SourceFrame.prototype.get statusBarItems):
2346         (WebInspector.SourceFrame.prototype._initializeTextViewer):
2347         (WebInspector.SourceFrame.prototype._editButtonClicked):
2348         (WebInspector.SourceFrame.prototype.canEditSource):
2349         (WebInspector.SourceFrame.prototype.startEditing):
2350         (WebInspector.SourceFrame.prototype.commitEditing):
2351         (WebInspector.SourceFrame.prototype._setReadOnly):
2352         (WebInspector.TextViewerDelegateForSourceFrame.prototype.doubleClick):
2353         * inspector/front-end/TextViewer.js:
2354         (WebInspector.TextEditorMainPanel.prototype.set readOnly):
2355         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
2356         * inspector/front-end/inspector.css:
2357         (button.edit-source-status-bar-item .glyph):
2358         (button.edit-source-status-bar-item.toggled-on .glyph):
2359
2360 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
2361
2362         Crashes in WebCore::AppendNodeCommand::create().
2363         https://bugs.webkit.org/show_bug.cgi?id=67767
2364
2365         Reviewed by Darin Adler.
2366
2367         In CompositeEditCommand::closeParagraphUnderNewElement(), lastNode could be a non Element node.
2368         The current code assumes lastNode is an Element node. This patch checks it.
2369
2370         Test: editing/execCommand/ident-crashes-topnode-is-text.html
2371
2372         * editing/CompositeEditCommand.cpp:
2373         (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement): Added an element node check.
2374
2375 2011-09-09  Shinya Kawanaka  <shinyak@google.com>
2376
2377         Crashes in WebCore::ApplyStyleCommand.doApply()
2378         https://bugs.webkit.org/show_bug.cgi?id=67765
2379
2380         Reviewed by Ryosuke Niwa.
2381
2382         WebCore::enclosingBlock may return null, but ApplyStyleCommand::applyBlockStyle did not check it. This patch make it to be checked.
2383
2384         Test: editing/style/remove-format-without-enclosing-block.html
2385
2386         * editing/ApplyStyleCommand.cpp:
2387         (WebCore::ApplyStyleCommand::applyBlockStyle): Added null check.
2388
2389 2011-09-09  James Simonsen  <simonjam@chromium.org>
2390
2391         [Chromium] Fix leak of Skia stream with custom CSS fonts
2392         https://bugs.webkit.org/show_bug.cgi?id=67815
2393
2394         Reviewed by Adam Barth.
2395
2396         Test: fast/css/font-face-opentype.html under valgrind
2397
2398         * platform/graphics/mac/FontCustomPlatformData.cpp:
2399         (WebCore::createFontCustomPlatformData):
2400         * platform/graphics/skia/FontCustomPlatformData.cpp:
2401         (WebCore::createFontCustomPlatformData):
2402
2403 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
2404
2405         Push more code from HTMLInputElement::setValue to TextFieldInputType::setValue
2406         https://bugs.webkit.org/show_bug.cgi?id=67742
2407
2408         Reviewed by Darin Adler.
2409
2410         Moved more code in HTMLInputElement::setValue to TextFieldInputType::setValue, and merged
2411         InputType::valueChanged into InputType::setValue. Also introduced
2412         InputType::dispatchChangeEventInResponseToSetValue to be overridden by TextFieldInputType.
2413
2414         * html/BaseButtonInputType.cpp:
2415         (WebCore::BaseButtonInputType::setValue):
2416         * html/BaseButtonInputType.h:
2417         * html/BaseCheckableInputType.cpp:
2418         (WebCore::BaseCheckableInputType::setValue):
2419         * html/BaseCheckableInputType.h:
2420         * html/ColorInputType.cpp:
2421         * html/ColorInputType.h:
2422         * html/FileInputType.cpp:
2423         (WebCore::FileInputType::setValue):
2424         * html/FileInputType.h:
2425         * html/HTMLInputElement.cpp:
2426         (WebCore::HTMLInputElement::setValue):
2427         * html/HTMLInputElement.h:
2428         (WebCore::HTMLInputElement::cacheSelectionInResponseToSetValue):
2429         * html/HiddenInputType.cpp:
2430         (WebCore::HiddenInputType::setValue):
2431         * html/HiddenInputType.h:
2432         * html/InputType.cpp:
2433         (WebCore::InputType::setValue):
2434         (WebCore::InputType::dispatchChangeEventInResponseToSetValue):
2435         * html/InputType.h:
2436         * html/RangeInputType.cpp:
2437         (WebCore::RangeInputType::setValue):
2438         * html/RangeInputType.h:
2439         * html/TextFieldInputType.cpp:
2440         (WebCore::TextFieldInputType::setValue):
2441         (WebCore::TextFieldInputType::dispatchChangeEventInResponseToSetValue):
2442         * html/TextFieldInputType.h:
2443
2444 2011-09-08  Annie Sullivan  <sullivan@chromium.org>
2445
2446         Crashes in WebCore::InsertNodeBeforeCommand constructor.
2447         https://bugs.webkit.org/show_bug.cgi?id=67763
2448
2449         Reviewed by Ryosuke Niwa.
2450
2451         Changes editableRootForPosition() to use the position's containerNode instead of deprecatedNode so that
2452         positions which are before or after a given node cannot return that node as the editable root.
2453
2454         Test: editing/inserting/insert-paragraph-selection-outside-contenteditable.html
2455
2456         * editing/htmlediting.cpp:
2457         (WebCore::editableRootForPosition): use containerNode instead of deprecatedNode.
2458
2459 2011-09-08  James Weatherall  <wez@chromium.org>
2460
2461         Release the reference to the HTMLPlugInElement's script object, when the element is removed from the document.  This breaks a cyclical reference that would otherwise cause the element to be retained until the document is torn down.
2462         https://bugs.webkit.org/show_bug.cgi?id=66181
2463
2464         Reviewed by Anders Carlsson.
2465
2466         No new tests - no functional change.
2467
2468         * html/HTMLPlugInElement.cpp:
2469         (WebCore::HTMLPlugInElement::removedFromDocument):
2470         * html/HTMLPlugInElement.h:
2471
2472 2011-09-08  Daniel Bates  <dbates@webkit.org>
2473
2474         XSS filter bypass via non-standard URL encoding
2475         https://bugs.webkit.org/show_bug.cgi?id=66588
2476
2477         Reviewed by Adam Barth.
2478
2479         Tests: http/tests/security/xssAuditor/script-tag-with-16bit-unicode-surrogate-pair.html
2480                http/tests/security/xssAuditor/script-tag-with-16bit-unicode.html
2481                http/tests/security/xssAuditor/script-tag-with-16bit-unicode2.html
2482                http/tests/security/xssAuditor/script-tag-with-16bit-unicode3.html
2483                http/tests/security/xssAuditor/script-tag-with-16bit-unicode4.html
2484                http/tests/security/xssAuditor/script-tag-with-16bit-unicode5.html
2485                http/tests/security/xssAuditor/script-tag-with-three-times-url-encoded-16bit-unicode.html
2486                http/tests/security/xssAuditor/window-open-without-url-should-not-assert.html
2487
2488         Implement support for decoding non-standard 16-bit Unicode escape sequences of
2489         the form %u26C4 as described in <http://www.w3.org/International/iri-edit/draft-duerst-iri.html#anchor29>.
2490
2491         See also <http://en.wikipedia.org/wiki/Percent-encoding#Non-standard_implementations>.
2492
2493         * GNUmakefile.list.am: Added DecodeEscapeSequences.h.
2494         * WebCore.gypi: Ditto.
2495         * WebCore.pro: Ditto.
2496         * WebCore.vcproj/WebCore.vcproj: Ditto.
2497         * WebCore.xcodeproj/project.pbxproj: Ditto.
2498         * html/parser/XSSAuditor.cpp:
2499         (WebCore::decode16BitUnicodeEscapeSequences): Added.
2500         (WebCore::decodeStandardURLEscapeSequences): Added.
2501         (WebCore::fullyDecodeString): Modified to call decode16BitUnicodeEscapeSequences().
2502         (WebCore::XSSAuditor::init): Modified to return early when the URL of the document
2503         is the empty string. This can happen when opening a new browser window or calling
2504         window.open("").
2505         * platform/KURL.cpp:
2506         (WebCore::decodeURLEscapeSequences): Abstracted code into template-function decodeEscapeSequences().
2507         This function just calls decodeEscapeSequences<URLEscapeSequence>().
2508         * platform/text/DecodeEscapeSequences.h: Added.
2509         (WebCore::Unicode16BitEscapeSequence::findInString):
2510         (WebCore::Unicode16BitEscapeSequence::matchStringPrefix):
2511         (WebCore::Unicode16BitEscapeSequence::decodeRun):
2512         (WebCore::URLEscapeSequence::findInString):
2513         (WebCore::URLEscapeSequence::matchStringPrefix):
2514         (WebCore::URLEscapeSequence::decodeRun):
2515         (WebCore::decodeEscapeSequences):
2516
2517 2011-09-08  Adam Barth  <abarth@webkit.org>
2518
2519         DocumentWriter::deprecatedFrameEncoding doesn't need to refert to Settings
2520         https://bugs.webkit.org/show_bug.cgi?id=67812
2521
2522         Reviewed by Eric Seidel.
2523
2524         The one caller of this function does this work already.
2525
2526         * loader/DocumentWriter.cpp:
2527         (WebCore::DocumentWriter::deprecatedFrameEncoding):
2528
2529 2011-09-08  Adam Klein  <adamk@chromium.org>
2530
2531         Always zero-out m_sortedTextBoxesPosition to avoid uninitialized read in TextIterator
2532         https://bugs.webkit.org/show_bug.cgi?id=67810
2533
2534         Reviewed by Tony Chang.
2535
2536         Reported as a valgrind failure in http://crbug.com/84777.
2537
2538         No possible change in behavior, so no tests. The unitialized read
2539         could never have an impact:
2540
2541            if (m_sortedTextBoxesPosition + 1 < m_sortedTextBoxes.size()) ...
2542
2543         Since m_sortedTextBoxes.size() will be zero here if
2544         m_sortedTextBoxesPosition is uninitialized, and they're both unsigned,
2545         so no possible value of m_sortedTextBoxesPosition could be < 0.
2546
2547         * editing/TextIterator.cpp:
2548         (WebCore::TextIterator::TextIterator):
2549
2550 2011-09-08  Tony Chang  <tony@chromium.org>
2551
2552         Cleanup of switch statements with default cases
2553         https://bugs.webkit.org/show_bug.cgi?id=67808
2554
2555         Reviewed by Adam Barth.
2556
2557         No new tests, just a small refactoring.
2558
2559         * page/WebKitAnimation.cpp:
2560         (WebCore::WebKitAnimation::fillMode):
2561         * platform/audio/Distance.cpp:
2562         (WebCore::DistanceEffect::gain):
2563
2564 2011-09-08  Eric Seidel  <eric@webkit.org>
2565
2566         [BiDi] Add support for the BDI element
2567         https://bugs.webkit.org/show_bug.cgi?id=50913
2568
2569         Reviewed by Ryosuke Niwa.
2570
2571         This patch is ridiculously trivial now that we have unicode-bidi: isolate support in WebKit.
2572
2573         Test: css3/bdi-element.html
2574
2575         * css/html.css:
2576         (bdi):
2577
2578 2011-09-08  David Levin  <levin@chromium.org>
2579
2580         [chromium] KURL::copy doesn't produce something usable on another thread.
2581         https://bugs.webkit.org/show_bug.cgi?id=67809
2582
2583         Reviewed by Adam Barth.
2584
2585         No new functionality exposed so no new test. This was caught by testing code: the thread
2586         sanitizer run in Chromium (http://code.google.com/p/chromium/issues/detail?id=93708).
2587
2588         * platform/KURLGoogle.cpp:
2589         (WebCore::KURLGooglePrivate::copyTo): Clear out the invalid String so that it will
2590         not be used on another thread.
2591
2592 2011-09-08  Alexey Proskuryakov  <ap@apple.com>
2593
2594         REGRESSION (r66874): Missing RefPtr in ScriptController
2595         https://bugs.webkit.org/show_bug.cgi?id=67748
2596
2597         Reviewed by Adam Barth.
2598
2599         * bindings/ScriptControllerBase.cpp: (WebCore::ScriptController::executeScript):
2600
2601 2011-09-08  Adam Barth  <abarth@webkit.org>
2602
2603         Second attempt to fix Chromium build.
2604
2605         * dom/Document.h:
2606
2607 2011-09-08  Oliver Hunt  <oliver@apple.com>
2608
2609         Use bump allocator for initial property storage
2610         https://bugs.webkit.org/show_bug.cgi?id=67494
2611
2612         Reviewed by Geoffrey Garen.
2613
2614         Add a forwarding header.
2615
2616         * ForwardingHeaders/runtime/StorageBarrier.h: Added.
2617
2618 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
2619
2620         Unreviewed, rolling out r94809.
2621         http://trac.webkit.org/changeset/94809
2622         https://bugs.webkit.org/show_bug.cgi?id=67718
2623
2624         commit _still_ premature, despite CQ eagerness
2625
2626         * html/HTMLAttributeNames.in:
2627         * html/HTMLStyleElement.cpp:
2628         * html/HTMLStyleElement.h:
2629         * html/HTMLStyleElement.idl:
2630
2631 2011-09-08  Sam Weinig  <sam@webkit.org>
2632
2633         Remove the Completion object from JSC, I have never liked it
2634         https://bugs.webkit.org/show_bug.cgi?id=67755
2635
2636         Reviewed by Gavin Barraclough.
2637
2638         * bindings/js/JSDOMBinding.cpp:
2639         (WebCore::reportException):
2640         * bindings/js/JSEventListener.cpp:
2641         (WebCore::JSEventListener::handleEvent):
2642         * bindings/js/JSInjectedScriptManager.cpp:
2643         (WebCore::InjectedScriptManager::createInjectedScript):
2644         * bindings/js/JSMainThreadExecState.h:
2645         (WebCore::JSMainThreadExecState::evaluate):
2646         * bindings/js/ScriptController.cpp:
2647         (WebCore::ScriptController::evaluateInWorld):
2648         * bindings/js/WorkerScriptController.cpp:
2649         (WebCore::WorkerScriptController::evaluate):
2650         * bindings/objc/WebScriptObject.mm:
2651         (-[WebScriptObject evaluateWebScript:]):
2652         * bridge/NP_jsobject.cpp:
2653         (_NPN_Evaluate):
2654         * bridge/jni/jni_jsobject.mm:
2655         (JavaJSObject::eval):
2656
2657 2011-09-08  Adam Barth  <abarth@webkit.org>
2658
2659         Inline DocumentWriter::encoding() into it's only caller: deprecatedFrameEncoding()
2660         https://bugs.webkit.org/show_bug.cgi?id=67807
2661
2662         Reviewed by Eric Seidel.
2663
2664         This function is super nutty.  We don't want any more folks to call it
2665         thinking that it does something sane.
2666
2667         * loader/DocumentWriter.cpp:
2668         (WebCore::DocumentWriter::deprecatedFrameEncoding):
2669         * loader/DocumentWriter.h:
2670
2671 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
2672
2673         <style scoped>: Add 'scoped' attribute
2674         https://bugs.webkit.org/show_bug.cgi?id=67718
2675
2676         Add 'scoped' attribute to IDL and attribute list,
2677         implement and test setting/resetting of the attribute.
2678
2679         Reviewed by Dimitri Glazkov.
2680
2681         Test: fast/css/style-scoped/basic-attribute.html
2682
2683         * html/HTMLAttributeNames.in:
2684         * html/HTMLStyleElement.cpp:
2685         (WebCore::HTMLStyleElement::scoped):
2686         (WebCore::HTMLStyleElement::setScoped):
2687         (WebCore::HTMLStyleElement::scopingElement):
2688         * html/HTMLStyleElement.h:
2689         * html/HTMLStyleElement.idl:
2690
2691 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2692
2693         Unreviewed, rolling out r94781.
2694         http://trac.webkit.org/changeset/94781
2695         https://bugs.webkit.org/show_bug.cgi?id=67806
2696
2697         Broke Objective-C binding on Mac (Requested by rniwa on
2698         #webkit).
2699
2700         * dom/Element.idl:
2701         * dom/Node.cpp:
2702         (WebCore::Node::contains):
2703         * dom/Node.idl:
2704         * editing/DeleteSelectionCommand.cpp:
2705         (WebCore::DeleteSelectionCommand::mergeParagraphs):
2706
2707 2011-09-08  Eric Seidel  <eric@webkit.org>
2708
2709         Remove DocumentWriter::setDecoder as a grep of WebKit shows no callers
2710         https://bugs.webkit.org/show_bug.cgi?id=67803
2711
2712         Reviewed by Adam Barth.
2713
2714         Smells like dead code.
2715
2716         * loader/DocumentWriter.cpp:
2717         * loader/DocumentWriter.h:
2718
2719 2011-09-08  Shinya Kawanaka  <shinyak@google.com>
2720
2721         Crashes in WebCore::ReplaceSelectionCommand::doApply
2722         https://bugs.webkit.org/show_bug.cgi?id=67762
2723
2724         Reviewed by Ryosuke Niwa.
2725
2726         WebCore::enclosingBlock may return null, but its return value was not checked. This patch checks it.
2727
2728         Tests: editing/inserting/insert-without-enclosing-block.html
2729
2730         * editing/ReplaceSelectionCommand.cpp:
2731         (WebCore::ReplaceSelectionCommand::doApply): Added null check.
2732
2733 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2734
2735         Unreviewed, rolling out r94784.
2736         http://trac.webkit.org/changeset/94784
2737         https://bugs.webkit.org/show_bug.cgi?id=67796
2738
2739         Commit was premature (Requested by rolandsteiner on #webkit).
2740
2741         * html/HTMLAttributeNames.in:
2742         * html/HTMLStyleElement.cpp:
2743         * html/HTMLStyleElement.h:
2744         * html/HTMLStyleElement.idl:
2745
2746 2011-09-08  W. James MacLean  <wjmaclean@chromium.org>
2747
2748         [chromium] Add backend compositor support for rescaling (zooming) textures during zoom animation.
2749         https://bugs.webkit.org/show_bug.cgi?id=66472
2750
2751         This patch contains plumbing from Internals to WebViewImpl that can be removed
2752         at a later time when the zoom animator code is complete.
2753
2754         Reviewed by James Robinson.
2755
2756         Test: platform/chromium/compositing/zoom-animator-scale-test.html
2757
2758         * page/Settings.cpp:
2759         (WebCore::Settings::Settings):
2760         * page/Settings.h:
2761         (WebCore::Settings::setZoomAnimatorScale):
2762         (WebCore::Settings::zoomAnimatorScale):
2763         * platform/graphics/chromium/LayerRendererChromium.cpp:
2764         (WebCore::LayerRendererChromium::LayerRendererChromium):
2765         (WebCore::LayerRendererChromium::drawLayersInternal):
2766         * platform/graphics/chromium/LayerRendererChromium.h:
2767         (WebCore::LayerRendererChromium::setZoomAnimatorScale):
2768         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2769         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2770         (WebCore::CCLayerTreeHost::commitTo):
2771         (WebCore::CCLayerTreeHost::setZoomAnimatorScale):
2772         (WebCore::CCLayerTreeHost::updateLayers):
2773         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2774         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2775         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorScale):
2776         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2777         * testing/Internals.cpp:
2778         (WebCore::Internals::setZoomAnimatorScale):
2779         * testing/Internals.h:
2780         * testing/Internals.idl:
2781
2782 2011-09-08  Eric Carlson  <eric.carlson@apple.com>
2783
2784         HTMLMediaElement is missing initialTime attribute
2785         https://bugs.webkit.org/show_bug.cgi?id=67791
2786
2787         Reviewed by Darin Adler.
2788
2789         Test: media/media-initialTime.html
2790
2791         * html/HTMLMediaElement.cpp:
2792         (WebCore::HTMLMediaElement::initialTime):
2793         * html/HTMLMediaElement.h:
2794         * html/HTMLMediaElement.idl:
2795         * platform/graphics/MediaPlayer.cpp:
2796         (WebCore::MediaPlayer::initialTime):
2797         * platform/graphics/MediaPlayer.h:
2798         * platform/graphics/MediaPlayerPrivate.h:
2799         (WebCore::MediaPlayerPrivateInterface::initialTime):
2800
2801 2011-09-03  Robert Hogan  <robert@webkit.org>
2802
2803         Elements with position:absolute don't move to correct position after images load
2804         https://bugs.webkit.org/show_bug.cgi?id=54611
2805
2806         Reviewed by Simon Fraser.
2807
2808         Test: fast/block/positioning/absolute-layout-after-image-load.html
2809
2810         In the test the 'label' block is an absolutely positioned child of an inline flow. So during layout, 
2811         this RenderBlock::layoutPositionedObjects fails to dirty it for rendering because it requires 
2812         the parent to be a BlockFlow. The code to do this was introduced in http://trac.webkit.org/changeset/8284. 
2813         There doesn't seem to be a good reason for requiring a BlockFlow, so remove the check. 
2814
2815         Note: Although the issue is encountered only on first load without a fragment identifier, it 
2816         happens reliably when you include the fragment identifier in the url (#Footnote_1). This is so 
2817         because scrolling to the fragment always happens before the image has loaded, rendering the page 
2818         and clearing the initial dirty bits in the positioned element's renderer. When the image finally 
2819         loads in this scenario, the positioned element is otherwise clean and relies on the above code to get 
2820         re-rendered.
2821
2822         Note: This was originally landed in r94755 but positioned-float-layout-after-image-load.html exposed
2823               an ASSERT bug, unrelated to this change, and was rolled out. That issue is tracked separately
2824               in bug 67759.
2825
2826         * rendering/RenderBlock.cpp:
2827         (WebCore::RenderBlock::layoutPositionedObjects): remove the check for r->parent()->isBlockFlow() when 
2828                                                          deciding whether to mark children for layout
2829
2830 2011-09-08  Roland Steiner  <rolandsteiner@chromium.org>
2831
2832         <style scoped>: Add 'scoped' attribute
2833         https://bugs.webkit.org/show_bug.cgi?id=67718
2834
2835         Add 'scoped' attribute to IDL and attribute list,
2836         implement and test setting/resetting of the attribute.
2837
2838         Reviewed by Dimitri Glazkov.
2839
2840         Test: fast/css/style-scoped/basic-attribute.html
2841
2842         * html/HTMLAttributeNames.in:
2843         * html/HTMLStyleElement.cpp:
2844         (WebCore::HTMLStyleElement::scoped):
2845         (WebCore::HTMLStyleElement::setScoped):
2846         (WebCore::HTMLStyleElement::scopingElement):
2847         * html/HTMLStyleElement.h:
2848         * html/HTMLStyleElement.idl:
2849
2850 2011-09-08  Erik Arvidsson  <arv@chromium.org>
2851
2852         Move Element.contains to Node
2853         https://bugs.webkit.org/show_bug.cgi?id=67651
2854
2855         Reviewed by Darin Adler.
2856
2857         This moves the contains method from Element to Node as in the DOM4 working draft: 
2858         http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#dom-node-contains
2859
2860         This also special cases Document contains to make it O(1) instead of O(depth).
2861
2862         Tests: fast/dom/Node/contains-method.html
2863                perf/document-contains.html
2864
2865         * dom/Element.idl:
2866         * dom/Node.cpp:
2867         (WebCore::Node::contains): Added document special case.
2868         * dom/Node.idl:
2869         * editing/DeleteSelectionCommand.cpp:
2870         (WebCore::DeleteSelectionCommand::mergeParagraphs): Added a null check.
2871
2872 2011-09-08  Chris Rogers  <crogers@google.com>
2873
2874         Check AudioContext createChannelMerger() for thread safety
2875         https://bugs.webkit.org/show_bug.cgi?id=67247
2876
2877         Reviewed by Kenneth Russell.
2878
2879         Test: webaudio/audiochannelmerger-stereo.html
2880
2881         * webaudio/AudioChannelMerger.cpp:
2882         (WebCore::AudioChannelMerger::process):
2883         (WebCore::AudioChannelMerger::checkNumberOfChannelsForInput):
2884         * webaudio/AudioChannelMerger.h:
2885
2886 2011-09-08  Ned Holbrook  <nholbrook@apple.com>
2887
2888         Refactor hyphen measurement
2889         https://bugs.webkit.org/show_bug.cgi?id=67728
2890
2891         Reviewed by Darin Adler.
2892
2893         No new tests, purely refactoring.
2894
2895         * rendering/RenderBlockLineLayout.cpp:
2896         (WebCore::measureHyphenWidth): Added.
2897         (WebCore::setLogicalWidthForTextRun): Use measureHyphenWidth().
2898         (WebCore::tryHyphenating): Ditto.
2899         (WebCore::RenderBlock::LineBreaker::nextLineBreak): Ditto.
2900
2901 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
2902
2903         Remove LayoutStateDisabler instances from RenderLayer
2904         https://bugs.webkit.org/show_bug.cgi?id=66896
2905
2906         Reviewed by Simon Fraser.
2907
2908         As part of r93614, scrollTo does not call updateLayerPositions anymore.
2909         This means that we don't need to disable LayoutState from the scrolling code
2910         in RenderLayer.
2911
2912         This change is covered by the existing tests.
2913
2914         * rendering/RenderLayer.cpp:
2915         (WebCore::RenderLayer::updateLayerPositions): Updated the comment
2916         that was not accurate anymore. Also explained what is wrong with
2917         LayoutState vs RenderLayer now. Note that the ASSERT is still
2918         valid and will not trigger as the remaining calls to updateLayerPositions
2919         are done *outside* layout() where LayoutState is not set (thus disabled).
2920
2921         (WebCore::RenderLayer::updateScrollInfoAfterLayout): Removed
2922         2 LayoutStateDisabler surrounding scrollToOffset.
2923
2924 2011-09-08  Julien Chaffraix  <jchaffraix@webkit.org>
2925
2926         Factor out the code to get the first non-null RenderTableSection in RenderTable
2927         https://bugs.webkit.org/show_bug.cgi?id=66972
2928
2929         Reviewed by Darin Adler.
2930
2931         Refactoring only, covered by existing tests.
2932
2933         * accessibility/AccessibilityTable.cpp:
2934         (WebCore::AccessibilityTable::addChildren):
2935         (WebCore::AccessibilityTable::cellForColumnAndRow):
2936         * accessibility/AccessibilityTableCell.cpp:
2937         (WebCore::AccessibilityTableCell::rowIndexRange):
2938         Updated those for the signature change in sectionBelow. Also added
2939         a FIXME where topSection should be used instead of iterating
2940         over the section (and likely missing some corner cases).
2941
2942         * rendering/FixedTableLayout.cpp:
2943         (WebCore::FixedTableLayout::calcWidthArray):
2944         * rendering/RenderTable.cpp:
2945         (WebCore::RenderTable::calcBorderStart):
2946         (WebCore::RenderTable::calcBorderEnd):
2947         (WebCore::RenderTable::outerBorderBefore):
2948         (WebCore::RenderTable::sectionAbove):
2949         (WebCore::RenderTable::sectionBelow):
2950         (WebCore::RenderTable::firstLineBoxBaseline):
2951         Updated all those functions to use the newly added functions. Also changed
2952         the variable names to match the functions.
2953
2954         (WebCore::RenderTable::layout):
2955         (WebCore::RenderTable::topNonEmptySection): Newly added function
2956         that returns the top non null section of the table that has at least a
2957         row.
2958
2959         (WebCore::RenderTable::cellAbove):
2960         (WebCore::RenderTable::cellBelow):
2961         Update the signature of those 2 functions to take an enum as it makes the
2962         rest of the code more readable.
2963
2964         * rendering/RenderTable.h:
2965         (WebCore::RenderTable::topSection): Newly added function to return
2966         the top non null section in the table.
2967
2968 2011-04-19  Eric Seidel  <eric@webkit.org>
2969
2970         Reviewed by Ryosuke Niwa.
2971
2972         [BiDi] [CSS3] MASTER: Add support for the unicode-bidi:isolate CSS property
2973         https://bugs.webkit.org/show_bug.cgi?id=50912
2974
2975         This patch adds support for CSS3 unicode-bidi: isolate property, under the -webkit- vendor prefix.
2976         Parsing support was added in a previous patch, this wires up the RenderStyle values
2977         to code changes in the BidiResolver.
2978
2979         The effect of this patch is that it makes it possible to "isolate" runs of text
2980         so that their RTL-ness or LTR-ness does not bleed out into the rest of your text
2981         and effect layout.  This is important because many unicode characters (like parenthesis, ':', '-', etc.)
2982         do not have intrinsic directionality and are affected by whatever characters come before/after.
2983         If you have usernames which include RTL text, if you inject those usernames in your page
2984         you might end up with nearby characters moving!
2985         (like 'RTL USERNAME - my awesome site' as a title, could end up as
2986         'my awesome site - USERNAME RTL' when correct would be 'USERNAME RTL - my awesome site'.)
2987         This patch makes it possible to wrap sections of text in isolated spans, so that
2988         they correctly order all their RTL/LTR contents, but also correctly participate in the
2989         larger RTL/LTR ordering without affecting nearby characters.
2990
2991         Because much of this code is old and rarely touched, I've included extra background
2992         information in hopes of expanding my set of potential reviewers:
2993
2994         WebKit uses the standard "Unicode Bidi Algorithm" henceforth known as the UBA.
2995         The UBA is defined at http://unicode.org/reports/tr9/ for those not faint of heart.
2996
2997         Text layout is done per-block (<div>, <p>, etc), and begins with a string of text
2998         (which in our case comes from the rendering tree) and a specified width.
2999         First:  Text is measured and wrapped into lines.
3000         Second: The UBA is run over the lines of text.
3001         Third:  WebKit builds InlineBoxes (its linebox tree) and eventually render the text.
3002
3003         This patch modifies our UBA to ignore all text content inside "isolated" inlines (treating them as neutral characters)
3004         and then adds another step after running the UBA, where we run the UBA recursively on any
3005         previously identified "isolated" content.
3006
3007         The result of the UBA is an ordered list of "runs" of text with the RTL runs
3008         correctly RTL and the LTR runs LTR.
3009
3010         The UBA does three things:
3011         1.  It assigns a "class" to each character in a text stream (like neutral, strongly-RTL, strongly-LTR, etc.)
3012         2.  Divides the text stream up into "runs" of characters of the same directionality (all RTL, all LTR).
3013         3.  Re-orders those runs.
3014
3015         The UBA in WebKit is implemented by BidiResolver<T> in BidiResolver.h
3016
3017         The InlineBidiResolver (BidiResolver specialization which knows about the rendering tree)
3018         walks along its InlineIterators, looking at each character and running the
3019         Unicode Bidi Algorithm (UBA).  It walks through the rendering tree subtree under
3020         a block, using a (poorly named) bidiNext function which returns the next inline object.
3021         Each inline object (or text character there-in) has a corresponding meaning in the UBA
3022         such as a "strong RTL" character or a "neutral" character.  The UBA reads these sequence
3023         of characters, and figures out what direction (RTL or LTR) to assign to any neutral
3024         characters it encounters, based on surrounding characters.
3025
3026         As the InlineBidiResolver is walking the rendering tree, the InlineIterator::advance()
3027         function calls bidiNext(), which in turn can call notifyObserverEnteredObject/notifyObserverWillExitObject
3028         notifying InlineBidiResolver that it is entering or exiting an "isolated"
3029         span, at which point it will either start or stop ignoring the stream of characters
3030         from the InlineIterator.  When the InlineBidiResolver is ignoring the stream of
3031         characters, instead of creating separate BidiRuns at each RTL/LTR boundary
3032         as it normally would, it instead creates one "fake" run for the entire
3033         isolated span.  These fake runs participate in the normal UBA run ordering process,
3034         but after the main UBA, a second pass is made where we examine
3035         the list of isolatedRuns() and run the UBA on each of them, replacing the fake
3036         run we previously inserted, with the resulting list of runs from that inner UBA run.
3037         The way it "ignores" characters is by treating them all as neutral when inside an isolate.
3038         Thus all the characters end up grouped in a single run, but their directionality (as a group)
3039         is correctly affected by any surrounding strong characters.
3040
3041         If you understood that last paragraph, than the rest of the change is just plumbing.
3042
3043         I added a huge number of FIXMEs to this code, because this code has a variety of
3044         design choices (or lack there of) which make some of this very difficult.
3045
3046         For example the bidiNext iterator function has two sets of mutually exclusive
3047         parameters and can be used optionally with or without an observer.  Prior to this
3048         change there was only ever one object which cared about observing a walk over inlines
3049         and that was InlineBidiResolver.  This patch (regretfully) templatizes bidiNext
3050         to support a new Observer type.  The correct fix would be to rip bidiNext into
3051         multiple functions and rip need for observation out of InlineBidiResolver.
3052         Unfortunately I've tried both in separate bugs and failed.  This code is very very
3053         old and very poorly understood.  We're slowly moving forward, this is another tiny step.
3054
3055         This is my fourth iteration of this patch (I'm happy to do more!), but I believe
3056         it's a good compromise between fixing all of the design gotcha's of our bidi
3057         system and doing the minimum amount to add this killer CSS feature.
3058
3059         I ran the PLT.  (It averaged 0.2% faster with this change, but I attribute that to noise).
3060
3061         Test: css3/unicode-bidi-isolate-basic.html and css3/unicode-bidi-isolate-aharon.html
3062
3063         * platform/text/BidiResolver.h:
3064         (WebCore::BidiCharacterRun::setNext):
3065          - Needed by the new replaceRunWithRuns function.
3066         (WebCore::BidiResolver::BidiResolver):
3067         (WebCore::BidiResolver::~BidiResolver):
3068         (WebCore::BidiResolver::enterIsolate):
3069         (WebCore::BidiResolver::exitIsolate):
3070         (WebCore::BidiResolver::inIsolate):
3071         (WebCore::BidiResolver::isolatedRuns):
3072          - Used to track isolated spans of text as they're encoutered.
3073            They're stuffed away here to be processed recursively
3074            after the main UBA has done its thang.
3075         (WebCore::::appendRun):
3076         (WebCore::::embed):
3077         (WebCore::::commitExplicitEmbedding):
3078         (WebCore::::createBidiRunsForLine):
3079         * platform/text/BidiRunList.h:
3080         (WebCore::::replaceRunWithRuns):
3081          - This effectively takes all the runs from one runlist and adds them to
3082            this one, replacing the fake run we inserted during a previous pass of the UBA.
3083          - This RunList now owns the runs, so we call clear() on the other RunList
3084            so that we don't end up double-freeing the runs.
3085         (WebCore::::clear):
3086          - This allows us to "take" runs from another run list and then clear it.
3087         * rendering/BidiRun.h:
3088         (WebCore::BidiRun::object):
3089         * rendering/InlineIterator.h:
3090         (WebCore::InlineIterator::object):
3091         (WebCore::InlineIterator::offset):
3092         (WebCore::notifyObserverEnteredObject): Mostly just renaming and adding a FIXME about plaintext.
3093         (WebCore::notifyObserverWillExitObject): Mostly just renaming.
3094         (WebCore::addPlaceholderRunForIsolatedInline):
3095         (WebCore::isIsolatedInline):
3096         (WebCore::InlineBidiResolver::appendRun):
3097         * rendering/RenderBlockLineLayout.cpp:
3098         (WebCore::statusWithDirection):
3099         (WebCore::constructBidiRuns):
3100          - This is the heavy-lifting of this change.  This function
3101            runs the UBA recursively on all the previously identified isolated spans.
3102          - If we encounter more isolated spans in our run, we just add them to the
3103            main list an keep going.  Because the runs are linked lists and we have
3104            direct pointers to our placeholder objects, we don't care what order
3105            we process the placeholders in, so long as when we're done, they're all processed.
3106         (WebCore::RenderBlock::layoutInlineChildren):
3107
3108 2011-09-08  Kentaro Hara  <haraken@google.com>
3109
3110         Implement a ProgressEvent constructor for JSC
3111         https://bugs.webkit.org/show_bug.cgi?id=67537
3112
3113         Reviewed by Sam Weinig.
3114
3115         The spec for the ProgressEvent constructor is here:
3116         http://www.w3.org/TR/progress-events/#interface-progressevent
3117
3118         Test: fast/events/constructors/progress-event-constructor.html
3119
3120         * bindings/generic/EventConstructors.h: Added a definition for the ProgressEvent constructor.
3121         * bindings/js/JSDictionary.cpp:
3122         (WebCore::JSDictionary::convertValue): Converts an ECMA-262 Number into an IDL unsigned long long value. Spec: http://www.w3.org/TR/WebIDL/#es-unsigned-long-long
3123         * bindings/js/JSEventConstructors.cpp: Added #includes for ProgressEvent.
3124         * dom/ProgressEvent.cpp:
3125         (WebCore::ProgressEventInit::ProgressEventInit):
3126         (WebCore::ProgressEvent::ProgressEvent):
3127         * dom/ProgressEvent.h: Added a definition for ProgressEventInit.
3128         (WebCore::ProgressEvent::create):
3129         * dom/ProgressEvent.idl: Makes ProgressEvent constructible.
3130
3131 2011-09-08  Ryosuke Niwa  <rniwa@webkit.org>
3132
3133         Make bindings tests quiet after r94701.
3134
3135         * bindings/scripts/test/JS/JSTestInterface.cpp:
3136         * bindings/scripts/test/JS/JSTestInterface.h:
3137         (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
3138         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
3139         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3140         (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
3141         * bindings/scripts/test/JS/JSTestObj.cpp:
3142         * bindings/scripts/test/JS/JSTestObj.h:
3143         (WebCore::JSTestObjPrototype::JSTestObjPrototype):
3144         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3145         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3146         (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
3147
3148 2011-09-07  Pavel Podivilov  <podivilov@chromium.org>
3149
3150         Web Inspector: get rid of RawSourceCode.createSourceMappingIfNeeded.
3151         https://bugs.webkit.org/show_bug.cgi?id=67717
3152
3153         Listen to SourceMappingUpdated event instead of using createSourceMappingIfNeeded.
3154
3155         Reviewed by Yury Semikhatsky.
3156
3157         * inspector/front-end/DebuggerPresentationModel.js:
3158         (WebInspector.DebuggerPresentationModel):
3159         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
3160         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3161         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
3162         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3163         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
3164         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
3165         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
3166         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
3167         (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
3168         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
3169         (WebInspector.DebuggerPresentationModel.prototype.messagesForUISourceCode):
3170         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3171         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
3172         (WebInspector.PresentationCallFrame.prototype.sourceLine):
3173         * inspector/front-end/SourceFile.js:
3174
3175 2011-09-06  Pavel Podivilov  <podivilov@chromium.org>
3176
3177         Web Inspector: do not re-create RawSourceCode when toggling pretty-print mode.
3178         https://bugs.webkit.org/show_bug.cgi?id=67647
3179
3180         1) Implement RawSourceCode.setFormatted that allows toggling pretty-print mode on the fly without resetting everything.
3181         2) Add RawSourceCode unit tests.
3182         3) Remove source mapping listeners and console messages from presentation model (they live in RawSourceCode now).
3183
3184         Reviewed by Yury Semikhatsky.
3185
3186         Test: inspector/debugger/raw-source-code.html
3187
3188         * inspector/front-end/DebuggerPresentationModel.js:
3189         (WebInspector.DebuggerPresentationModel):
3190         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3191         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3192         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
3193         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
3194         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
3195         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3196         * inspector/front-end/ScriptsPanel.js:
3197         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
3198         * inspector/front-end/SourceFile.js:
3199         (WebInspector.RawSourceCode):
3200         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
3201         (WebInspector.RawSourceCode.prototype.setFormatted):
3202         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
3203         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
3204
3205 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
3206
3207         Web Inspector: [REGRESSION] Clear console shortcut Ctrl + L broken
3208         https://bugs.webkit.org/show_bug.cgi?id=67711
3209
3210         Reviewed by Yury Semikhatsky.
3211
3212         * inspector/front-end/ConsoleView.js:
3213         (WebInspector.ConsoleView.prototype._consoleCleared):
3214         (WebInspector.ConsoleView.prototype._registerShortcuts):
3215         (WebInspector.ConsoleView.prototype._promptKeyDown):
3216
3217 2011-09-08  Andras Becsi  <andras.becsi@nokia.com>
3218
3219         [Qt] Build fails with strict compiler
3220         https://bugs.webkit.org/show_bug.cgi?id=67778
3221
3222         Reviewed by Csaba Osztrogon√°c.
3223
3224         No new tests needed.
3225
3226         * platform/graphics/TiledBackingStore.cpp:
3227         (WebCore::TiledBackingStore::resizeEdgeTiles): Remove unused contentsRect variable
3228         which's usage was removed in r94681 to fix the build with [-Werror=unused-but-set-variable].
3229
3230 2011-09-08  Sheriff Bot  <webkit.review.bot@gmail.com>
3231
3232         Unreviewed, rolling out r94695.
3233         http://trac.webkit.org/changeset/94695
3234         https://bugs.webkit.org/show_bug.cgi?id=67776
3235
3236         Hitting an assertion on Snow Leopard, Qt, GTK (Requested by
3237         Zoltan on #webkit).
3238
3239         * rendering/RenderBlock.cpp:
3240         (WebCore::RenderBlock::positionedFloatsNeedRelayout):
3241         (WebCore::RenderBlock::layoutPositionedObjects):
3242
3243 2011-09-08  Alexander Pavlov  <apavlov@chromium.org>
3244
3245         Unreviewed, strip trailing whitespace in the Web Inspector frontend (*.js and *.css).
3246
3247         * inspector/front-end/ApplicationCacheItemsView.js:
3248         * inspector/front-end/AuditResultView.js:
3249         * inspector/front-end/BinarySearch.js:
3250         * inspector/front-end/CSSStyleModel.js:
3251         * inspector/front-end/ConsoleMessage.js:
3252         * inspector/front-end/ConsoleModel.js:
3253         * inspector/front-end/ConsoleView.js:
3254         * inspector/front-end/CookieItemsView.js:
3255         * inspector/front-end/CookieParser.js:
3256         * inspector/front-end/DOMAgent.js:
3257         * inspector/front-end/DOMStorage.js:
3258         * inspector/front-end/DOMStorageItemsView.js:
3259         * inspector/front-end/DataGrid.js:
3260         * inspector/front-end/Database.js:
3261         * inspector/front-end/DatabaseQueryView.js:
3262         * inspector/front-end/DetailedHeapshotGridNodes.js:
3263         * inspector/front-end/DetailedHeapshotView.js:
3264         * inspector/front-end/ElementsTreeOutline.js:
3265         * inspector/front-end/EmptyView.js:
3266         * inspector/front-end/EventListenersSidebarPane.js:
3267         * inspector/front-end/ExtensionCommon.js:
3268         * inspector/front-end/GoToLineDialog.js:
3269         * inspector/front-end/HeapSnapshot.js:
3270         * inspector/front-end/HeapSnapshotProxy.js:
3271         * inspector/front-end/HeapSnapshotWorkerDispatcher.js:
3272         * inspector/front-end/ImageView.js:
3273         * inspector/front-end/InjectedFakeWorker.js:
3274         * inspector/front-end/InspectorFrontendHostStub.js:
3275         * inspector/front-end/MetricsSidebarPane.js:
3276         * inspector/front-end/NetworkManager.js:
3277         * inspector/front-end/NetworkPanel.js:
3278         * inspector/front-end/ObjectPropertiesSection.js:
3279         * inspector/front-end/PartialQuickSort.js:
3280         * inspector/front-end/ProfileView.js:
3281         * inspector/front-end/ProfilesPanel.js:
3282         * inspector/front-end/RemoteObject.js:
3283         * inspector/front-end/Resource.js:
3284         * inspector/front-end/ResourceCategory.js:
3285         * inspector/front-end/ResourceHTMLView.js:
3286         * inspector/front-end/ResourceHeadersView.js:
3287         * inspector/front-end/ResourceJSONView.js:
3288         * inspector/front-end/ResourceTimingView.js:
3289         * inspector/front-end/ResourceTreeModel.js:
3290         * inspector/front-end/ResourceView.js:
3291         * inspector/front-end/ResourcesPanel.js:
3292         * inspector/front-end/SearchController.js:
3293         * inspector/front-end/SettingsScreen.js:
3294         * inspector/front-end/ShortcutsScreen.js:
3295         * inspector/front-end/SourceCSSTokenizer.js:
3296         * inspector/front-end/SourceHTMLTokenizer.js:
3297         * inspector/front-end/SourceJavaScriptTokenizer.js:
3298         * inspector/front-end/StatusBarButton.js:
3299         * inspector/front-end/TextEditorModel.js:
3300         * inspector/front-end/TimelineGrid.js:
3301         * inspector/front-end/View.js:
3302         * inspector/front-end/heapProfiler.css:
3303         * inspector/front-end/inspector.css:
3304         * inspector/front-end/inspector.js:
3305         * inspector/front-end/inspectorSyntaxHighlight.css:
3306         * inspector/front-end/networkPanel.css:
3307         * inspector/front-end/treeoutline.js:
3308         * inspector/front-end/utilities.js:
3309
3310 2011-09-07  Andrey Kosyakov  <caseq@chromium.org>
3311
3312         Web Inspector: trying to scroll mouse wheel when in TextViewer's gutter pane causes EventException::DISPATCH_REQUEST_ERR
3313         https://bugs.webkit.org/show_bug.cgi?id=67715
3314
3315         Reviewed by Yury Semikhatsky.
3316
3317         - avoid exception on attempt to dispatch an event that is being dispatched by cloning the event.
3318
3319         * inspector/front-end/TextViewer.js:
3320         (WebInspector.TextViewer.forwardWheelEvent):
3321         (WebInspector.TextViewer):
3322
3323 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3324
3325         Unreviewed, rolling out r94674 and r94689.
3326         http://trac.webkit.org/changeset/94674
3327         http://trac.webkit.org/changeset/94689
3328         https://bugs.webkit.org/show_bug.cgi?id=67754
3329
3330         Broke inspector/debugger/script-formatter.html (Requested by
3331         rniwa on #webkit).
3332
3333         * inspector/front-end/DebuggerPresentationModel.js:
3334         (WebInspector.DebuggerPresentationModel):
3335         (WebInspector.DebuggerPresentationModel.prototype.addSourceMappingListener):
3336         (WebInspector.DebuggerPresentationModel.prototype.removeSourceMappingListener):
3337         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
3338         (WebInspector.DebuggerPresentationModel.prototype._addScript):
3339         (WebInspector.DebuggerPresentationModel.prototype._sourceMappingUpdated):
3340         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3341         (WebInspector.DebuggerPresentationModel.prototype.setFormatSource):
3342         (WebInspector.DebuggerPresentationModel.prototype._createRawSourceCodeId):
3343         (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
3344         * inspector/front-end/ScriptsPanel.js:
3345         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
3346         * inspector/front-end/SourceFile.js:
3347         (WebInspector.RawSourceCode):
3348         (WebInspector.RawSourceCode.prototype.get uiSourceCode):
3349         (WebInspector.RawSourceCode.prototype.get rawSourceCode):
3350         (WebInspector.RawSourceCode.prototype.rawLocationToUILocation):
3351         (WebInspector.RawSourceCode.prototype.requestContent):
3352         (WebInspector.RawSourceCode.prototype._saveSourceMapping):
3353
3354 2011-09-07  Julien Chaffraix  <jchaffraix@webkit.org>
3355
3356         offsetFromRoot optimization is disabled after r93837
3357         https://bugs.webkit.org/show_bug.cgi?id=67677
3358
3359         Reviewed by Simon Fraser.
3360
3361         Unfortunately not covered by any test as it does not change updateLayerPosition complexity (it is still O(n^2)
3362         because of clippedOverflowRectForRepaint). However it is a noticeable slowdown on some use cases but we don't
3363         have a good test harness to cover such slowdown.
3364
3365         * rendering/RenderLayer.cpp:
3366         (WebCore::RenderLayer::updateLayerPositions): Pass offsetFromRoot as not doing so means that we miss
3367         the optimization altogether.
3368
3369         (WebCore::RenderLayer::computeRepaintRects):
3370         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
3371         * rendering/RenderLayer.h:
3372         Renamed |cachedOffset| to |offsetFromRoot| to be consistent with our latest renaming.
3373
3374 2011-09-07  Ryosuke Niwa  <rniwa@webkit.org>
3375
3376         Windows build fix after r94737.
3377
3378         * rendering/RenderBlock.cpp:
3379         (WebCore::RenderBlock::adjustRectForColumns):
3380
3381 2011-09-07  Dan Bernstein  <mitz@apple.com>
3382
3383         Removed hyphenation function implementations for an usupported build configuration.
3384
3385         Reviewed by Sam Weinig.
3386
3387         * platform/text/cf/HyphenationCF.cpp:
3388
3389 2011-09-07  David Hyatt  <hyatt@apple.com>
3390
3391         https://bugs.webkit.org/show_bug.cgi?id=67739
3392
3393         adjustRectForColumns is O(# of columns) when it can be O(1). Fix the slow performance of this
3394         function by removing the loop and just computing the start and end column for a repaint rect
3395         and uniting everything in between.
3396
3397         Reviewed by Dan Bernstein.
3398
3399         * rendering/RenderBlock.cpp:
3400         (WebCore::RenderBlock::adjustRectForColumns):
3401
3402 2011-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
3403
3404         Unreviewed, rolling out r94714 and r94723.
3405         http://trac.webkit.org/changeset/94714
3406         http://trac.webkit.org/changeset/94723
3407         https://bugs.webkit.org/show_bug.cgi?id=67746
3408
3409         breaks gtk-linux tests with assertion failure (Requested by
3410         thorton on #webkit).
3411
3412         * platform/graphics/GraphicsContext.cpp:
3413         (WebCore::GraphicsContext::GraphicsContext):
3414         (WebCore::GraphicsContext::~GraphicsContext):
3415         * platform/graphics/GraphicsContext.h:
3416         (WebCore::GraphicsContext::inTransparencyLayer):
3417         * platform/graphics/cairo/GraphicsContextCairo.cpp:
3418         (WebCore::GraphicsContext::beginTransparencyLayer):
3419         (WebCore::GraphicsContext::endTransparencyLayer):
3420         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
3421         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
3422         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
3423         * platform/graphics/cg/GraphicsContextCG.cpp:
3424         (WebCore::GraphicsContext::beginTransparencyLayer):
3425         (WebCore::GraphicsContext::endTransparencyLayer):
3426         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
3427         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
3428         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
3429         (WebCore::GraphicsContextPlatformPrivate::beginTransparencyLayer):
3430         (WebCore::GraphicsContextPlatformPrivate::endTransparencyLayer):
3431         * platform/graphics/haiku/GraphicsContextHaiku.cpp:
3432         (WebCore::GraphicsContext::beginTransparencyLayer):
3433         (WebCore::GraphicsContext::endTransparencyLayer):
3434         * platform/graphics/mac/FontMac.mm:
3435         (WebCore::Font::drawGlyphs):
3436         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
3437         (WebCore::GraphicsContext::beginTransparencyLayer):
3438         (WebCore::GraphicsContext::endTransparencyLayer):
3439         * platform/graphics/qt/GraphicsContextQt.cpp:
3440         (WebCore::GraphicsContext::inTransparencyLayer):
3441         (WebCore::GraphicsContext::beginTransparencyLayer):
3442         (WebCore::GraphicsContext::endTransparencyLayer):
3443         * platform/graphics/skia/GraphicsContextSkia.cpp:
3444         (WebCore::GraphicsContext::beginTransparencyLayer):
3445         (WebCore::GraphicsContext::endTransparencyLayer):
3446         * platform/graphics/win/FontCGWin.cpp:
3447         (WebCore::drawGDIGlyphs):
3448         * platform/graphics/win/GraphicsContextCGWin.cpp:
3449         (WebCore::GraphicsContext::releaseWindowsContext):
3450         * platform/graphics/win/GraphicsContextCairoWin.cpp:
3451         (WebCore::GraphicsContext::releaseWindowsContext):
3452         * platform/graphics/win/GraphicsContextWin.cpp:
3453         (WebCore::GraphicsContext::inTransparencyLayer):
3454         (WebCore::GraphicsContext::getWindowsContext):
3455         * platform/graphics/wince/GraphicsContextWinCE.cpp:
3456         (WebCore::GraphicsContext::beginTransparencyLayer):
3457         (WebCore::GraphicsContext::endTransparencyLayer):
3458         * platform/graphics/wx/GraphicsContextWx.cpp:
3459         (WebCore::GraphicsContext::beginTransparencyLayer):
3460         (WebCore::GraphicsContext::endTransparencyLayer):
3461         * platform/win/ScrollbarThemeWin.cpp:
3462         (WebCore::ScrollbarThemeWin::paintTrackPiece):
3463         (WebCore::ScrollbarThemeWin::paintButton):
3464         (WebCore::ScrollbarThemeWin::paintThumb):
3465         * plugins/win/PluginViewWin.cpp:
3466         (WebCore::PluginView::paint):