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