Complex spaces with synthetic bold are too wide
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-09-30  Ned Holbrook  <nholbrook@apple.com>
2
3         Complex spaces with synthetic bold are too wide
4         https://bugs.webkit.org/show_bug.cgi?id=69033
5
6         Reviewed by Dan Bernstein.
7
8         Test: fast/text/complex-synthetic-bold-space-width.html
9
10         * platform/graphics/mac/ComplexTextController.cpp:
11         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Subtract synthetic bold offset from spaceWidth.
12         * platform/graphics/win/UniscribeController.cpp:
13         (WebCore::UniscribeController::shapeAndPlaceItem): Ditto.
14
15 2011-09-30  Pavel Feldman  <pfeldman@google.com>
16
17         Web Inspector: [chromium] expose inspector protocol version to the embedder.
18         https://bugs.webkit.org/show_bug.cgi?id=69092
19
20         This change also introduces major/minor inspector version components.
21
22         Reviewed by Yury Semikhatsky.
23
24         * CMakeLists.txt:
25         * CodeGenerators.pri:
26         * DerivedSources.make:
27         * GNUmakefile.am:
28         * GNUmakefile.list.am:
29         * WebCore.gyp/WebCore.gyp:
30         * WebCore.gypi:
31         * inspector/Inspector-0.1.json: Renamed from Source/WebCore/inspector/Inspector.draft-01.json.
32         * inspector/Inspector.json:
33         * inspector/generate-inspector-protocol-version: Renamed from Source/WebCore/inspector/validate-protocol-compatibility.
34
35 2011-09-29  Antti Koivisto  <antti@apple.com>
36
37         https://bugs.webkit.org/show_bug.cgi?id=69106
38         Universal attribute selectors disable style sharing
39
40         Reviewed by Dave Hyatt.
41
42         Selectors of type [foo="bar"] ended up marking every element style with the affectedByAttributeSelectors bit
43         rendering style sharing inoperative. This happens on http://www.whatwg.org/specs/web-apps/current-work/ for example.
44
45         Instead we now mark style with affectedByUncommonAttributeSelectors bit only if an attribute selector actually 
46         matches the element. Before sharing, we also check the current element against collected attribute rules.
47         We can share the style if neither element was affected.
48         
49         This speeds up style matching and applying ~15% on full HTML5 spec (=~0.7s). Sharing percentage goes from 0% to ~30%.
50         Increased sharing should also save a substantial amount of memory.
51
52         * css/CSSSelector.h:
53         (WebCore::CSSSelector::isAttributeSelector):
54         * css/CSSStyleSelector.cpp:
55         (WebCore::RuleData::containsUncommonAttributeSelector):
56         (WebCore::collectSpecialRulesInDefaultStyle):
57         (WebCore::assertNoSiblingRulesInDefaultStyle):
58         (WebCore::CSSStyleSelector::CSSStyleSelector):
59         (WebCore::CSSStyleSelector::matchRules):
60         (WebCore::CSSStyleSelector::matchesRuleSet):
61         (WebCore::CSSStyleSelector::canShareStyleWithElement):
62         (WebCore::CSSStyleSelector::locateSharedStyle):
63         (WebCore::CSSStyleSelector::styleForElement):
64         (WebCore::selectorListContainsUncommonAttributeSelector):
65         (WebCore::isCommonAttributeSelectorAttribute):
66         (WebCore::containsUncommonAttributeSelector):
67         (WebCore::RuleData::RuleData):
68         (WebCore::collectFeaturesFromSelector):
69         (WebCore::collectFeaturesFromList):
70         * css/CSSStyleSelector.h:
71         * css/SelectorChecker.cpp:
72         (WebCore::SelectorChecker::checkOneSelector):
73         * rendering/style/RenderStyle.cpp:
74         (WebCore::RenderStyle::RenderStyle):
75         * rendering/style/RenderStyle.h:
76         (WebCore::InheritedFlags::affectedByUncommonAttributeSelectors):
77         (WebCore::InheritedFlags::setAffectedByUncommonAttributeSelectors):
78
79 2011-09-30  James Robinson  <jamesr@chromium.org>
80
81         [chromium] Add WebKit API for sending input events to the compositor thread
82         https://bugs.webkit.org/show_bug.cgi?id=69117
83
84         Reviewed by Darin Fisher.
85
86         Convert to using an externally-provided thread instead of one managed by CCThreadProxy internally. Most changes
87         in these files are mechanically changing references from ccThread to s_ccThread to reflect the class-static
88         nature of this pointer, the rest are removing the old thread creation codepath.
89
90         These changes are covered by the CC* unit tests and by the gpu layout tests when run with the
91         use_threaded_compositing=1 gyp define.
92
93         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
94         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
95         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
96         (WebCore::CCThreadProxy::setThread):
97         (WebCore::CCThreadProxy::CCThreadProxy):
98         (WebCore::CCThreadProxy::~CCThreadProxy):
99         (WebCore::CCThreadProxy::compositeAndReadback):
100         (WebCore::CCThreadProxy::finishAllRendering):
101         (WebCore::CCThreadProxy::initializeLayerRenderer):
102         (WebCore::CCThreadProxy::setNeedsCommit):
103         (WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
104         (WebCore::CCThreadProxy::setNeedsRedraw):
105         (WebCore::CCThreadProxy::start):
106         (WebCore::CCThreadProxy::stop):
107         (WebCore::CCThreadProxy::beginFrameAndCommit):
108         (WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
109         * platform/graphics/chromium/cc/CCThreadProxy.h:
110
111 2011-09-29  Fady Samuel  <fsamuel@chromium.org>
112
113         Fixed Hit testing on Framesets when Frameset is transformed
114         https://bugs.webkit.org/show_bug.cgi?id=67740
115
116         Reviewed by Simon Fraser.
117
118         Tests: fast/frames/frame-set-rotation-hit.html
119                fast/frames/frame-set-scaling-hit.html
120
121         * rendering/RenderFrameSet.cpp:
122         (WebCore::RenderFrameSet::userResize):
123
124 2011-09-29  Dirk Pranke  <dpranke@chromium.org>
125
126         fix gyp warnings in chromium for renamed files
127         https://bugs.webkit.org/show_bug.cgi?id=69116
128
129         Reviewed by Adam Barth.
130
131         * WebCore.gypi:
132
133 2011-09-29  Martin Robinson  <mrobinson@igalia.com>
134
135         [Freetype] Some text in Planet GNOME renders in the wrong place
136         https://bugs.webkit.org/show_bug.cgi?id=69099
137
138         Reviewed by Dirk Schulze.
139
140         Test: platform/gtk/fonts/synthetic-oblique-positioning.html
141
142         Fold the oblique transform into the font matrix itself rather than transforming
143         the CTM of the context at render time. Not only does this fix the issue, it
144         prevents unnecessary work on every paint.
145
146         * platform/graphics/cairo/FontCairo.cpp:
147         No longer set the synthetic oblique transformation matrix on the context
148         when rendering the text. Instead it is now folded into the TM of the font
149         itself.
150         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
151         (WebCore::FontPlatformData::initializeWithFontFace): Fold the oblique transform into the scaled font.
152         * platform/graphics/win/FontPlatformDataCairoWin.cpp:
153         (WebCore::FontPlatformData::FontPlatformData): Ditto.
154
155 2011-09-29  Dan Bernstein  <mitz@apple.com>
156
157         Follow-up fix for <rdar://problem/10191243> Glyph variants (line final swashes) appear where they should not
158
159         Reviewed by Simon Fraser.
160
161         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
162         (WebCore::FontPlatformData::ctFont): Check for Hoefler Text Black Italic as well.
163
164 2011-09-29  Cary Clark  <caryclark@google.com>
165
166         Enable LCD text in Skia on Mac
167         https://bugs.webkit.org/show_bug.cgi?id=68734
168
169         Reviewed by Stephen White.
170
171         No new tests. Existing layout tests are generated
172         with LCD text disabled for pixel comparisons.
173
174         Duplicate the logic in FontMac.mm to pass settings
175         for antialiasing and smoothing. Also disable smoothing
176         for DumpRenderTree.
177  
178         * platform/graphics/skia/FontSkia.cpp:
179         (WebCore::setupPaint):
180         (WebCore::Font::drawGlyphs):
181
182 2011-09-29  Varun Jain  <varunjain@google.com>
183  
184          Implement flick gesture in Chromium Gesture Recognizer
185          https://bugs.webkit.org/show_bug.cgi?id=67930
186  
187          Reviewed by Dimitri Glazkov.
188  
189          Test: Source/WebKit/chromium/tests/InnerGestureRecognizerTest.cpp 
190  
191          * platform/chromium/GestureRecognizerChromium.cpp:
192          (WebCore::GestureRecognizerChromium::isOverMinFlickSpeed):
193          (WebCore::GestureRecognizerChromium::appendScrollGestureEnd):
194          (WebCore::GestureRecognizerChromium::updateValues):
195          (WebCore::GestureRecognizerChromium::scrollEnd):
196          * platform/chromium/GestureRecognizerChromium.h:
197
198 2011-09-29  Noel Gordon  <noel.gordon@gmail.com>
199
200         [chromium] canvas.toDataURL("image/jpeg"): use libjpeg-turbo data swizzle
201         https://bugs.webkit.org/show_bug.cgi?id=67402
202
203         Reviewed by Kenneth Russell.
204
205         libjpeg-turbo can read directly from the input data for the premultiplied BRGX
206         (SkBitmap) encoding case.
207
208         No change in behavior, covered by existing canvas 2d/3d tests
209         canvas/philip/tests/toDataURL.jpeg.alpha.html
210         fast/canvas/webgl/premultiplyalpha-test.html
211
212         * platform/image-encoders/skia/JPEGImageEncoder.cpp:
213         (WebCore::encodePixels): If JCS_EXTENSIONS is defined (libjpeg-turbo), swizzle
214         the input BRGX pixels directly within libjpeg-turbo.
215
216 2011-09-29  Adam Barth  <abarth@webkit.org>
217
218         Fixenate the build.
219
220         * bindings/v8/V8DOMWindowShell.cpp:
221         (WebCore::V8DOMWindowShell::namedItemAdded):
222
223 2011-09-29  Ryosuke Niwa  <rniwa@webkit.org>
224
225         Remove direct reads to m_firstNodeInserted and m_lastLeafInserted in ReplaceSelectionCommand
226         https://bugs.webkit.org/show_bug.cgi?id=69023
227
228         Reviewed by Enrica Casucci.
229
230         Converted to removeUnrenderedTextNodesAtEnds to use InsertedNodes instead of m_firstNodeInserted
231         and m_lastLeafInserted. Extracted the logic to update nodes as InsertedNodes::willRemoveNode
232         (old one was renamed to InsertedNodes::willRemoveNodePreservingChildren).
233
234         Also extracted shouldPerformSmartReplace and addSpacesForSmartReplace out of doApply,
235         and rewrote the logic to obtain endNode and startNode using startOfInsertedContent and
236         endOfInsertedContent instead of m_firstNodeInserted and m_lastLeafInserted.
237
238         Finally, replaced the nullity checks of m_firstNodeInserted and m_lastLeafInserted in
239         completeHTMLReplacement by nullity checks of start and end positions.
240
241         * dom/Node.cpp:
242         (WebCore::Node::traversePreviousSibling): Added.
243         * dom/Node.h:
244         * editing/ReplaceSelectionCommand.cpp:
245         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren): Renamed from
246         willRemoveNode.
247         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode): Extracted from
248         removeUnrenderedTextNodesAtEnds.
249         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
250         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
251         (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Made const.
252         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Made const.
253         (WebCore::ReplaceSelectionCommand::handleStyleSpans): Takes firstNodeInserted instead of directly
254         accessing m_firstNodeInserted.
255         (WebCore::ReplaceSelectionCommand::doApply):
256         (WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
257         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
258         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
259         * editing/ReplaceSelectionCommand.h:
260
261 2011-09-29  Andreas Kling  <kling@webkit.org>
262
263         Shrink HTMLAnchorElement on 32-bit.
264         https://bugs.webkit.org/show_bug.cgi?id=69094
265
266         Reviewed by Antti Koivisto.
267
268         * html/HTMLAnchorElement.h: Pack members into a bitfield.
269
270 2011-09-29  Dan Bernstein  <mitz@apple.com>
271
272         <rdar://problem/10191243> Glyph variants (line final swashes) appear where they should not
273
274         Reviewed by Simon Fraser.
275
276         Test: fast/text/line-initial-and-final-swashes.html
277
278         Hoefler Text Italic enables line-initial and -final swashes by default, so disable them. This
279         change targets only this known-bad font rather than all fonts, because at least one font (Khmer MN)
280         incorrectly claims to have the line-initial feature enabled, but disabling it actually does
281         something different and bad (breaking some combining marks).
282
283         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
284         (WebCore::createFeatureSettingDictionary): Added this helper function.
285         (WebCore::cascadeToLastResortFontDescriptor): Deployed WTF_ARRAY_LENGTH().
286         (WebCore::cascadeToLastResortAndDisableSwashesFontDescriptor): Added. Returns a font descriptor
287         that, in addition to having a cascade list consisting of the last resort font, also has feature
288         settings to disable line-initial and line-final swashes.
289         (WebCore::FontPlatformData::ctFont): For Hoefler Text Italic, use cascadeToLastResortAndDisableSwashesFontDescriptor().
290
291 2011-09-29  Mark Hahnenberg  <mhahnenberg@apple.com>
292
293         Unreviewed: resetting baseline for code generator bindings
294
295         Unreviewed build fix
296
297         No new tests.
298
299         * bindings/scripts/test/JS/JSTestObj.cpp:
300         * bindings/scripts/test/JS/JSTestObj.h:
301
302 2011-09-29  Nate Chapin  <japhet@chromium.org>
303
304         [V8, chromium] More logging to determine cause of a null
305         v8::Context in V8DOMWindowShell::namedItemAdded().
306
307         https://bugs.webkit.org/show_bug.cgi?id=68099
308
309         Reviewed by Adam Barth.
310
311         * bindings/v8/V8DOMWindowShell.cpp:
312         (WebCore::V8DOMWindowShell::namedItemAdded):
313
314 2011-09-29  Alexey Proskuryakov  <ap@apple.com>
315
316         https://bugs.webkit.org/show_bug.cgi?id=69040
317         ScrollbarThemeComposite requires a ScrollView to draw scroll corner
318
319         Reviewed by Simon Fraser.
320
321         No new tests. This will be needed later.
322
323         * platform/ScrollbarThemeComposite.cpp:
324         (WebCore::pageForScrollView):
325         (WebCore::ScrollbarThemeComposite::paintScrollCorner):
326         Use pageForScrollView() function which already existed in this file, used in another similar
327         location.
328
329         * platform/chromium/FramelessScrollView.cpp:
330         * platform/chromium/FramelessScrollView.h:
331         * platform/gtk/ScrollbarThemeGtk.cpp:
332         * platform/gtk/ScrollbarThemeGtk.h:
333         * platform/wx/ScrollbarThemeWx.cpp:
334         * platform/wx/ScrollbarThemeWx.h:
335         All these overrides are no longer needed, ScrollbarThemeComposite will do the right thing.
336
337         * platform/qt/ScrollbarThemeQt.cpp: (WebCore::ScrollbarThemeQt::paintScrollCorner):
338         Removed a special case for updatingControlTints phase. The same case is present in cross-platform
339         code now, and Qt doesn't have any custom subclasses of ScrollableArea or ScrollView to need
340         special handling.
341         This was added in r37377 without a bug or much ChangeLog explanation.
342
343 2011-09-29  Mark Hahnenberg  <mhahnenberg@apple.com>
344
345         De-virtualize JSCell::visitChildrenVirtual and remove all other visitChildrenVirtual methods
346         https://bugs.webkit.org/show_bug.cgi?id=68839
347
348         Reviewed by Geoffrey Garen.
349
350         No new tests.
351
352         Removed the remaining visitChildrenVirtual methods.  This patch completes the process of 
353         de-virtualizing visitChildren.
354
355         * WebCore.exp.in:
356         * bindings/js/JSAttrCustom.cpp:
357         * bindings/js/JSAudioContextCustom.cpp:
358         * bindings/js/JSCSSRuleCustom.cpp:
359         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
360         * bindings/js/JSCanvasRenderingContextCustom.cpp:
361         * bindings/js/JSDOMGlobalObject.cpp:
362         (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
363         (WebCore::JSDOMGlobalObject::finishCreation):
364         * bindings/js/JSDOMGlobalObject.h:
365         * bindings/js/JSDOMWindowCustom.cpp:
366         * bindings/js/JSDOMWindowShell.cpp:
367         * bindings/js/JSDOMWindowShell.h:
368         * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
369         * bindings/js/JSMessageChannelCustom.cpp:
370         * bindings/js/JSMessagePortCustom.cpp:
371         * bindings/js/JSNamedNodeMapCustom.cpp:
372         * bindings/js/JSNodeCustom.cpp:
373         * bindings/js/JSNodeFilterCustom.cpp:
374         * bindings/js/JSNodeIteratorCustom.cpp:
375         * bindings/js/JSSVGElementInstanceCustom.cpp:
376         * bindings/js/JSSharedWorkerCustom.cpp:
377         * bindings/js/JSStyleSheetCustom.cpp:
378         * bindings/js/JSTreeWalkerCustom.cpp:
379         * bindings/js/JSWebGLRenderingContextCustom.cpp:
380         * bindings/js/JSWorkerContextCustom.cpp:
381         * bindings/js/JSXMLHttpRequestCustom.cpp:
382         * bindings/js/JSXPathResultCustom.cpp:
383         * bindings/scripts/CodeGeneratorJS.pm:
384         (GenerateHeader):
385         (GenerateImplementation):
386         * bridge/qt/qt_instance.cpp:
387         * bridge/qt/qt_runtime.cpp:
388         * bridge/qt/qt_runtime.h:
389
390 2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
391
392         [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
393
394         QWidget and friends now live in the QtWidgets library. We update
395         includes in implementation files and private headers to us the
396         non-module-prefixed path, and leave the lookup for the include
397         path. For public headers we have to ifdef the includes as the
398         user might now have the modules we need in his QT config.
399
400         Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
401         have to update our code and use windowHandle() for setting the
402         parent relationships.
403
404         https://bugs.webkit.org/show_bug.cgi?id=68687
405
406         Reviewed by Andreas Kling.
407
408         * WebCore.pri:
409         * platform/graphics/qt/GraphicsLayerQt.cpp:
410
411 2011-09-29  Sheriff Bot  <webkit.review.bot@gmail.com>
412
413         Unreviewed, rolling out r96340.
414         http://trac.webkit.org/changeset/96340
415         https://bugs.webkit.org/show_bug.cgi?id=69098
416
417         Caused 10 tests to crash in Debug (Requested by
418         abarth|gardener on #webkit).
419
420         * accessibility/AXObjectCache.cpp:
421         (WebCore::AXObjectCache::AXObjectCache):
422         (WebCore::AXObjectCache::~AXObjectCache):
423         (WebCore::AXObjectCache::remove):
424         (WebCore::AXObjectCache::childrenChanged):
425         * accessibility/AXObjectCache.h:
426         * accessibility/AccessibilityMenuList.cpp:
427         (WebCore::AccessibilityMenuList::childrenChanged):
428         * accessibility/AccessibilityMenuList.h:
429         * accessibility/AccessibilityMenuListPopup.cpp:
430         (WebCore::AccessibilityMenuListPopup::childrenChanged):
431         * accessibility/AccessibilityMenuListPopup.h:
432         * accessibility/AccessibilityObject.h:
433         (WebCore::AccessibilityObject::childrenChanged):
434         * accessibility/AccessibilityRenderObject.cpp:
435         (WebCore::startOfContinuations):
436         (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
437         (WebCore::AccessibilityRenderObject::childrenChanged):
438         * accessibility/AccessibilityRenderObject.h:
439         * rendering/RenderObject.cpp:
440         (WebCore::RenderObject::willBeDestroyed):
441
442 2011-09-29  Andreas Kling  <kling@webkit.org>
443
444         Shrink FontFallbackList.
445         https://bugs.webkit.org/show_bug.cgi?id=69093
446
447         Reviewed by Antti Koivisto.
448
449         Reduce the size of FontFallbackList by one CPU word, decreasing memory
450         consumption by 300 kB (on 64-bit) when loading the full HTML5 spec.
451
452         * platform/graphics/FontCache.h:
453         * platform/graphics/FontCache.cpp:
454         (WebCore::FontCache::generation):
455
456             Store the FontCache generation as an ushort rather than uint.
457
458         * platform/graphics/FontFallbackList.cpp:
459         (WebCore::FontFallbackList::FontFallbackList):
460         * platform/graphics/FontFallbackList.h:
461
462             Pack enum and bool members in a bitfield.
463
464 2011-09-29  Adam Barth  <abarth@webkit.org>
465
466         We should ignore the return value of GetRealNamedProperty
467         https://bugs.webkit.org/show_bug.cgi?id=68840
468
469         Reviewed by Nate Chapin.
470
471         Instead of skipping the lookup process by using the result of real
472         named property, we should just indiciate that it wasn't handled by the
473         interceptor.
474
475         Test: http/tests/security/window-named-valueOf.html
476
477         * bindings/v8/custom/V8DOMWindowCustom.cpp:
478         (WebCore::V8DOMWindow::namedPropertyGetter):
479
480 2011-09-29  Chris Fleizach  <cfleizach@apple.com>
481
482         ARIA live regions don't trigger notifications for elements that aren't in the AX tree
483         https://bugs.webkit.org/show_bug.cgi?id=62289
484
485         If an ARIA Live region udpates an element that is not in the AX object cache, then the Live region
486         notification is not sent. To fix this, the childrenChanged() method needs to actually create
487         the appropriate objects, but since that method gets called during a render tree update, we've learned 
488         that it's generally not safe to create objects.
489
490         Instead a one shot timer can be fired that will update and create the necessary objects so that the
491         correct notification can be sent.
492
493         Reviewed by Darin Adler.
494
495         Test: platform/mac/accessibility/aria-liveregion-without-element-access.html
496
497         * accessibility/AXObjectCache.cpp:
498         (WebCore::AXObjectCache::AXObjectCache):
499         (WebCore::AXObjectCache::~AXObjectCache):
500         (WebCore::AXObjectCache::remove):
501         (WebCore::AXObjectCache::childrenUpdateTimerFired):
502         (WebCore::AXObjectCache::childrenChanged):
503         * accessibility/AXObjectCache.h:
504         * accessibility/AccessibilityMenuList.cpp:
505         (WebCore::AccessibilityMenuList::childrenChanged):
506         * accessibility/AccessibilityMenuList.h:
507         * accessibility/AccessibilityMenuListPopup.cpp:
508         (WebCore::AccessibilityMenuListPopup::childrenChanged):
509         * accessibility/AccessibilityMenuListPopup.h:
510         * accessibility/AccessibilityObject.h:
511         (WebCore::AccessibilityObject::childrenChanged):
512         * accessibility/AccessibilityRenderObject.cpp:
513         (WebCore::startOfContinuations):
514         (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
515         (WebCore::AccessibilityRenderObject::childrenChanged):
516         * accessibility/AccessibilityRenderObject.h:
517         * rendering/RenderObject.cpp:
518         (WebCore::RenderObject::willBeDestroyed):
519
520 2011-09-29  Martin Robinson  <mrobinson@igalia.com>
521
522         [GTK] Dragging a selection does not produce a drag image
523         https://bugs.webkit.org/show_bug.cgi?id=69064
524
525         Reviewed by Andreas Kling.
526
527         Moved Chromium's generic implementation of Frame::nodeImage and
528         Frame::dragImageForSeletion to Frame.cpp and simply excluded via
529         #ifdefs platforms that do not have their own implementation. Removed
530         all empty implementations of these functions and Qt's which was
531         functionally identical.
532
533         No new tests. Drag-and-drop drag image functionality changes
534         are incredibly difficult to test in a non-manual way.
535
536         * CMakeListsEfl.txt: Delist FrameEfl.cpp.
537         * GNUmakefile.list.am: Delist FrameGtk.cpp.
538         * WebCore.gypi: Delist removed Frame*.cpp.
539         * WebCore.pro: Delist FrameQt.cpp.
540         * page/Frame.cpp: Moved FrameChromium implementation here.
541         (WebCore::ScopedFramePaintingState::ScopedFramePaintingState):
542         (WebCore::ScopedFramePaintingState::~ScopedFramePaintingState):
543         (WebCore::Frame::nodeImage):
544         (WebCore::Frame::dragImageForSelection):
545         * page/chromium/FrameChromium.cpp: Removed.
546         * page/efl/FrameEfl.cpp: Removed.
547         * page/gtk/FrameGtk.cpp: Removed.
548         * page/qt/FrameQt.cpp: Removed.
549         * page/wx/FrameWx.cpp: Removed.
550         * platform/gtk/ClipboardGtk.cpp:
551         (WebCore::ClipboardGtk::createDragImage): Call nodeImage to get
552         the drag image for a node.
553
554 2011-09-29  Noel Gordon  <noel.gordon@gmail.com>
555
556         [chromium skia] PNGImageEncoder: hoist constants out of the encoding loop
557         https://bugs.webkit.org/show_bug.cgi?id=68988
558
559         Reviewed by Kenneth Russell.
560
561         No new tests.  Covered by existing canvas 2d and 3d tests.
562         canvas/philip/tests/toDataURL.png.*.html
563         fast/canvas/toDataURL-alpha.html
564         fast/canvas/webgl/premultiplyalpha-test.html
565
566         * platform/image-encoders/skia/PNGImageEncoder.cpp:
567         (WebCore::encodePixels):  Move constant out of the encoding loop.
568         (WebCore::PNGImageEncoder::encode):  Consistency & style: call encodePixels()
569         just like we do in the JPEG encoder.
570
571 2011-09-29  Iain Merrick  <husky@google.com>
572
573         Add unit test for CCLayerSorter
574         https://bugs.webkit.org/show_bug.cgi?id=68622
575
576         Minor refactoring for testability:
577         - Made pointInTriangle public.
578         - Added LayerShape to decouple LayerIntersector and GraphNode.
579         - Added a public wrapper function for LayerIntersector.
580
581         Reviewed by James Robinson.
582
583         * platform/graphics/chromium/cc/CCLayerSorter.cpp:
584         (WebCore::CCLayerSorter::pointInTriangle):
585         (WebCore::CCLayerSorter::calculateZDiff):
586         (WebCore::CCLayerSorter::LayerIntersector::LayerIntersector):
587         (WebCore::CCLayerSorter::LayerIntersector::go):
588         (WebCore::CCLayerSorter::LayerIntersector::checkZDiff):
589         (WebCore::CCLayerSorter::LayerIntersector::layerZFromProjectedPoint):
590         (WebCore::CCLayerSorter::checkOverlap):
591         (WebCore::CCLayerSorter::LayerShape::LayerShape):
592         (WebCore::CCLayerSorter::createGraphNodes):
593         * platform/graphics/chromium/cc/CCLayerSorter.h:
594         (WebCore::CCLayerSorter::LayerShape::LayerShape):
595         (WebCore::CCLayerSorter::GraphNode::GraphNode):
596
597 2011-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
598
599         Web Inspector: UI performance test for network panel is incorrect. The time is including a timeout between scheduled refresh and actual refresh.
600         https://bugs.webkit.org/show_bug.cgi?id=69087
601
602         The fix has the changes for the test and minor perf framework improvements.
603
604         Reviewed by Yury Semikhatsky.
605
606         * inspector/front-end/NetworkPanel.js:
607         (WebInspector.NetworkLogView.prototype._defaultRefreshDelay.500._scheduleRefresh):
608
609 2011-09-29  Vsevolod Vlasov  <vsevik@chromium.org>
610
611         Web Inspector: Make search-in-resource test simpler.
612         https://bugs.webkit.org/show_bug.cgi?id=69025
613
614         Changed search-in-resource test.
615         Removed error parameter from content provider's searchInContent callback.
616
617         Reviewed by Pavel Feldman.
618
619         * inspector/InspectorPageAgent.cpp:
620         (WebCore::InspectorPageAgent::searchInResource):
621         (WebCore::InspectorPageAgent::searchInResources):
622         * inspector/front-end/Resource.js:
623         (WebInspector.Resource.prototype.searchInContent):
624
625 2011-09-29  Hans Wennborg  <hans@chromium.org>
626
627         IndexedDB: Use LevelDB also for in-memory databases
628         https://bugs.webkit.org/show_bug.cgi?id=68903
629
630         Reviewed by Steve Block.
631
632         Add LevelDBDatabase::openInMemory() which uses leveldb::NewMemEnv()
633         to create in-memory LevelDB databases.
634
635         Use this in IDBLeveLDBBackingStore::open() when the caller passes in
636         an empty file path.
637         This happens in Chromium's incognito mode, and when running layout
638         tests.
639
640         Fix IDBSQLiteBackingStore::backingStoreExists() so it doesn't create
641         files when passed in an empty file path, but uses the in-memory mode
642         instead.
643
644         Existing layout tests will all be run in-memory.
645
646         * platform/leveldb/LevelDBDatabase.cpp:
647         (WebCore::LevelDBDatabase::~LevelDBDatabase):
648         (WebCore::openDB):
649         (WebCore::LevelDBDatabase::open):
650         (WebCore::LevelDBDatabase::openInMemory):
651         * platform/leveldb/LevelDBDatabase.h:
652         * storage/IDBLevelDBBackingStore.cpp:
653         (WebCore::IDBLevelDBBackingStore::open):
654         * storage/IDBSQLiteBackingStore.cpp:
655         (WebCore::IDBSQLiteBackingStore::backingStoreExists):
656
657 2011-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
658
659         Web Inspector: speed-up Network panel. Change _staleResources type from array to object.
660         https://bugs.webkit.org/show_bug.cgi?id=69081
661
662         There is a test with 30 requests.
663         For the each stage of loading a resource we have an entry in _staleResources array. There are at least 4 stages per request.
664         NetworkLogView._refresh function is creating/updating the resource row for the each such entry.
665         This array can be replaced with a hash map just because the resource associated with the entry is the same for all the entries with the same request id.
666
667         Reviewed by Pavel Feldman.
668
669         Test: inspector/performance/resources/network-append-30-requests.html
670
671         * inspector/front-end/NetworkPanel.js:
672         (WebInspector.NetworkLogView):
673         (WebInspector.NetworkLogView.prototype._invalidateAllItems):
674         (WebInspector.NetworkLogView.prototype.refresh):
675         (WebInspector.NetworkLogView.prototype._reset):
676         (WebInspector.NetworkLogView.prototype._refreshResource):
677
678 2011-09-28  Pavel Feldman  <pfeldman@google.com>
679
680         Web Inspector: make inspector protocol validation a part of the build process.
681         https://bugs.webkit.org/show_bug.cgi?id=68999
682
683         Since we'd like to commit to inspector protocol backwards compatibility, violating it
684         should be a build failure.
685
686         Reviewed by Yury Semikhatsky.
687
688         * CMakeLists.txt:
689         * CodeGenerators.pri:
690         * DerivedSources.make:
691         * GNUmakefile.am:
692         * WebCore.gyp/WebCore.gyp:
693         * inspector/Inspector.draft-01.json:
694         * inspector/Inspector.json:
695         * inspector/generate-inspector-idl:
696         * inspector/generate-protocol-externs:
697         * inspector/validate-protocol-compatibility:
698
699 2011-09-27  Pavel Feldman  <pfeldman@google.com>
700
701         Web Inspector: Scripts panel without folders causes errors when creating content scripts section.
702         https://bugs.webkit.org/show_bug.cgi?id=68827
703
704         Reviewed by Yury Semikhatsky.
705
706         * inspector/front-end/ScriptsPanel.js:
707         (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered.optionCompare):
708         (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect.insertOrdered):
709         (WebInspector.ScriptsPanel.prototype._addOptionToFilesSelect):
710
711 2011-09-28  Andrey Kosyakov  <caseq@chromium.org>
712
713         Web Inspector: network log view refresh optimizations
714         https://bugs.webkit.org/show_bug.cgi?id=69010
715
716         Reviewed by Pavel Feldman.
717
718         * inspector/front-end/NetworkPanel.js:
719         (WebInspector.NetworkLogView.prototype.refresh):
720
721 2011-09-29  Pavel Podivilov  <podivilov@chromium.org>
722
723         Web Inspector: split SourceFile.js into RawSourceCode.js and UISourceCodeContentProviders.js.
724         https://bugs.webkit.org/show_bug.cgi?id=69068
725
726         Reviewed by Yury Semikhatsky.
727
728         * WebCore.gypi:
729         * WebCore.vcproj/WebCore.vcproj:
730         * inspector/front-end/RawSourceCode.js: Renamed from Source/WebCore/inspector/front-end/SourceFile.js.
731         (WebInspector.RawSourceCode): Moved from SourceFile.js.
732         (WebInspector.UILocation): Moved from SourceFile.js.
733         * inspector/front-end/UISourceCodeContentProviders.js: Added. Moved ContentProvider implementations from SourceFile.js
734         (WebInspector.ScriptContentProvider):
735         (WebInspector.ScriptContentProvider.prototype.requestContent):
736         (WebInspector.ConcatenatedScriptsContentProvider):
737         (WebInspector.ConcatenatedScriptsContentProvider.prototype.requestContent):
738         (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent.appendChunk):
739         (WebInspector.ConcatenatedScriptsContentProvider.prototype._concatenateScriptsContent):
740         (WebInspector.ResourceContentProvider):
741         (WebInspector.ResourceContentProvider.prototype.requestContent):
742         (WebInspector.StaticContentProvider):
743         (WebInspector.StaticContentProvider.prototype.requestContent):
744         * inspector/front-end/WebKit.qrc:
745         * inspector/front-end/inspector.html:
746
747 2011-09-29  Philippe Normand  <pnormand@igalia.com>
748
749         [GStreamer] 2 flaky media tests
750         https://bugs.webkit.org/show_bug.cgi?id=67407
751
752         Reviewed by Martin Robinson.
753
754         Workaround for GStreamer bug#639941. In GStreamer
755         0.10.35 basesink reports wrong duration in case of EOS and
756         negative playback rate. This workaround fixes two media tests,
757         media/video-timeupdate-reverse-play.html and
758         media/video-reverse-play-duration.html.
759
760         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
761         (WebCore::MediaPlayerPrivateGStreamer::prepareToPlay):
762         (WebCore::MediaPlayerPrivateGStreamer::currentTime):
763         (WebCore::MediaPlayerPrivateGStreamer::didEnd):
764
765 2011-09-29  Philippe Normand  <pnormand@igalia.com>
766
767         [GStreamer] fullscreen video pause/play fails
768         https://bugs.webkit.org/show_bug.cgi?id=66936
769
770         Reviewed by Martin Robinson.
771
772         Don't use the identity element to avoid painting of the in-window
773         video. Instead simply make the sink aware of the fullscreen state
774         and ignore buffers if fullscreen and autovideosink are
775         active. Also fixed two deadlocks happening when a paused pipeline
776         is switched to fullscreen and when fullscreen is disabled for a
777         paused pipeline.
778
779         * platform/graphics/gstreamer/GStreamerGWorld.cpp:
780         (WebCore::GStreamerGWorld::enterFullscreen):
781         (WebCore::GStreamerGWorld::exitFullscreen):
782         * platform/graphics/gstreamer/GStreamerGWorld.h:
783         (WebCore::GStreamerGWorld::isFullscreen):
784         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
785         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
786         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
787         (webkit_video_sink_render):
788         (webkit_video_sink_new):
789         * platform/graphics/gstreamer/VideoSinkGStreamer.h:
790
791 2011-09-29  Tim Horton  <timothy_horton@apple.com>
792
793         REGRESSION(87010): elements in ECMA-cloud neither filled nor blurred
794         https://bugs.webkit.org/show_bug.cgi?id=68679
795         <rdar://problem/10204649>
796
797         Reviewed by Nikolas Zimmermann.
798
799         Strip prefixes from SVG attributes before testing if they're supported.
800         Namespaced attributes will be matched using their namespace instead of
801         the (user-choosable) prefix.
802
803         Test: svg/custom/xlink-custom-namespace.svg
804
805         * svg/SVGAElement.cpp:
806         (WebCore::SVGAElement::isSupportedAttribute):
807         * svg/SVGAnimateMotionElement.cpp:
808         (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
809         * svg/SVGAnimateTransformElement.cpp:
810         (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
811         * svg/SVGAnimationElement.cpp:
812         (WebCore::SVGAnimationElement::isSupportedAttribute):
813         * svg/SVGCircleElement.cpp:
814         (WebCore::SVGCircleElement::isSupportedAttribute):
815         * svg/SVGClipPathElement.cpp:
816         (WebCore::SVGClipPathElement::isSupportedAttribute):
817         * svg/SVGComponentTransferFunctionElement.cpp:
818         (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
819         * svg/SVGCursorElement.cpp:
820         (WebCore::SVGCursorElement::isSupportedAttribute):
821         * svg/SVGElement.h:
822         (WebCore::SVGAttributeHashTranslator::hash):
823         (WebCore::SVGAttributeHashTranslator::equal):
824         * svg/SVGEllipseElement.cpp:
825         (WebCore::SVGEllipseElement::isSupportedAttribute):
826         * svg/SVGExternalResourcesRequired.h:
827         * svg/SVGFEBlendElement.cpp:
828         (WebCore::SVGFEBlendElement::isSupportedAttribute):
829         * svg/SVGFEColorMatrixElement.cpp:
830         (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
831         * svg/SVGFEComponentTransferElement.cpp:
832         (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
833         * svg/SVGFECompositeElement.cpp:
834         (WebCore::SVGFECompositeElement::isSupportedAttribute):
835         * svg/SVGFEConvolveMatrixElement.cpp:
836         (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
837         * svg/SVGFEDiffuseLightingElement.cpp:
838         (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
839         * svg/SVGFEDisplacementMapElement.cpp:
840         (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
841         * svg/SVGFEDropShadowElement.cpp:
842         (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
843         * svg/SVGFEGaussianBlurElement.cpp:
844         (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
845         * svg/SVGFEImageElement.cpp:
846         (WebCore::SVGFEImageElement::isSupportedAttribute):
847         * svg/SVGFELightElement.cpp:
848         (WebCore::SVGFELightElement::isSupportedAttribute):
849         * svg/SVGFEMergeNodeElement.cpp:
850         (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
851         * svg/SVGFEMorphologyElement.cpp:
852         (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
853         * svg/SVGFEOffsetElement.cpp:
854         (WebCore::SVGFEOffsetElement::isSupportedAttribute):
855         * svg/SVGFESpecularLightingElement.cpp:
856         (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
857         * svg/SVGFETileElement.cpp:
858         (WebCore::SVGFETileElement::isSupportedAttribute):
859         * svg/SVGFETurbulenceElement.cpp:
860         (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
861         * svg/SVGFilterElement.cpp:
862         (WebCore::SVGFilterElement::isSupportedAttribute):
863         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
864         (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
865         * svg/SVGForeignObjectElement.cpp:
866         (WebCore::SVGForeignObjectElement::isSupportedAttribute):
867         * svg/SVGGElement.cpp:
868         (WebCore::SVGGElement::isSupportedAttribute):
869         * svg/SVGGradientElement.cpp:
870         (WebCore::SVGGradientElement::isSupportedAttribute):
871         * svg/SVGImageElement.cpp:
872         (WebCore::SVGImageElement::isSupportedAttribute):
873         * svg/SVGLineElement.cpp:
874         (WebCore::SVGLineElement::isSupportedAttribute):
875         * svg/SVGLinearGradientElement.cpp:
876         (WebCore::SVGLinearGradientElement::isSupportedAttribute):
877         * svg/SVGMPathElement.cpp:
878         (WebCore::SVGMPathElement::isSupportedAttribute):
879         * svg/SVGMarkerElement.cpp:
880         (WebCore::SVGMarkerElement::isSupportedAttribute):
881         * svg/SVGMaskElement.cpp:
882         (WebCore::SVGMaskElement::isSupportedAttribute):
883         * svg/SVGPathElement.cpp:
884         (WebCore::SVGPathElement::isSupportedAttribute):
885         * svg/SVGPatternElement.cpp:
886         (WebCore::SVGPatternElement::isSupportedAttribute):
887         * svg/SVGPolyElement.cpp:
888         (WebCore::SVGPolyElement::isSupportedAttribute):
889         * svg/SVGRadialGradientElement.cpp:
890         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
891         * svg/SVGRectElement.cpp:
892         (WebCore::SVGRectElement::isSupportedAttribute):
893         * svg/SVGScriptElement.cpp:
894         (WebCore::SVGScriptElement::isSupportedAttribute):
895         * svg/SVGStopElement.cpp:
896         (WebCore::SVGStopElement::isSupportedAttribute):
897         * svg/SVGStyleElement.cpp:
898         (WebCore::SVGStyleElement::isSupportedAttribute):
899         * svg/SVGStyledTransformableElement.cpp:
900         (WebCore::SVGStyledTransformableElement::isSupportedAttribute):
901         * svg/SVGSymbolElement.cpp:
902         (WebCore::SVGSymbolElement::isSupportedAttribute):
903         * svg/SVGTRefElement.cpp:
904         (WebCore::SVGTRefElement::isSupportedAttribute):
905         * svg/SVGTextContentElement.cpp:
906         (WebCore::SVGTextContentElement::isSupportedAttribute):
907         * svg/SVGTextElement.cpp:
908         (WebCore::SVGTextElement::isSupportedAttribute):
909         * svg/SVGTextPathElement.cpp:
910         (WebCore::SVGTextPathElement::isSupportedAttribute):
911         * svg/SVGTextPositioningElement.cpp:
912         (WebCore::SVGTextPositioningElement::isSupportedAttribute):
913         * svg/SVGURIReference.cpp:
914         (WebCore::SVGURIReference::addSupportedAttributes):
915         * svg/SVGUseElement.cpp:
916         (WebCore::SVGUseElement::isSupportedAttribute):
917         * svg/SVGViewElement.cpp:
918         (WebCore::SVGViewElement::isSupportedAttribute):
919
920 2011-09-28  Kentaro Hara  <haraken@chromium.org>
921
922         "ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&"
923         https://bugs.webkit.org/show_bug.cgi?id=68984
924
925         Reviewed by Darin Adler.
926
927         Just a follow-up fix for the bug 68345. For performance,
928         "ScriptValue" arguments of PopStateEvent methods should be "const ScriptValue&".
929
930         Tests: fast/events/constructors/pop-state-event-constructor.html
931                fast/events/fire-popstate-event.html
932
933         * dom/PopStateEvent.cpp:
934         (WebCore::PopStateEvent::PopStateEvent):
935         (WebCore::PopStateEvent::create):
936         (WebCore::PopStateEvent::initPopStateEvent):
937         * dom/PopStateEvent.h:
938
939 2011-09-28  Martin Robinson  <mrobinson@igalia.com>
940
941         [GTK] Move drag-and-drop code which can be shared with WebKit2 to WebCore
942         https://bugs.webkit.org/show_bug.cgi?id=66890
943
944         Added a GtkDragAndDropHelper class to hold all the logic that is common
945         between WebKit1 and WebKit2. This will allow greater code sharing between
946         the two ports.
947
948         Reviewed by Philippe Normand.
949
950         No new tests. This patch should not change behavior.
951
952         * GNUmakefile.list.am: Added the GtkDragAndDropHelper to the sources list.
953         * platform/gtk/GtkDragAndDropHelper.cpp: Added.
954         * platform/gtk/GtkDragAndDropHelper.h: Added.
955
956 2011-09-28  Dan Bernstein  <mitz@apple.com>
957
958         <rdar://problem/10196497> first-letter after list marker not updated correctly
959
960         Reviewed by Simon Fraser.
961
962         Test: fast/dynamic/first-letter-after-list-marker.html
963
964         * rendering/RenderBlock.cpp:
965         (WebCore::RenderBlock::updateFirstLetter): Improved the logic for continuing past list markers
966         when trying to locate a first letter to update.
967
968 2011-09-28  Kent Tamura  <tkent@chromium.org>
969
970         REGRESSION(r93858): Can't type anything into input elements when maxlength is greater than 2^31
971         https://bugs.webkit.org/show_bug.cgi?id=68981
972
973         Reviewed by Darin Adler.
974
975         * html/parser/HTMLParserIdioms.cpp:
976         (WebCore::parseHTMLInteger):
977         Check the failure of charactersToIntStrict().
978         (WebCore::parseHTMLNonNegativeInteger):
979         Check the failure of charactersToUIntStrict().
980
981 2011-09-28  Antoine Labour  <piman@chromium.org>
982
983         Remove unused createRootLayerPainter from CCLayerTreeHostClient
984         https://bugs.webkit.org/show_bug.cgi?id=69042
985
986         Reviewed by James Robinson.
987
988         No new test needed: no semantic change.
989
990         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
991
992 2011-09-28  Luke Macpherson   <macpherson@chromium.org>
993
994         Only resolve direction aware properties when properties are direction aware.
995         https://bugs.webkit.org/show_bug.cgi?id=68968
996
997         Reviewed by Eric Seidel.
998
999         No new tests / no functionality changed.
1000
1001         Profiling showed a ~8% improvement in applyProperty by not calling resolveDirectionAwareProperty for every property.
1002
1003         * css/CSSStyleSelector.cpp:
1004         (WebCore::CSSStyleSelector::applyProperty):
1005
1006 2011-09-28  Simon Fraser  <simon.fraser@apple.com>
1007
1008         fast/dom/scroll-element-to-rect.html fails on WK1 Mac port
1009         https://bugs.webkit.org/show_bug.cgi?id=68815
1010
1011         Reviewed by Dan Bernstein.
1012         
1013         FrameView::scrollElementToRect() was incorrectly using Element::boundsInWindowSpace(),
1014         which is window-relative (not web view-relative), and has flipped coordinates
1015         in WebKit1.
1016         
1017         Change to use Node::getRect() which is what the author intended.
1018
1019         * dom/Element.h:
1020         * page/FrameView.cpp:
1021         (WebCore::FrameView::scrollElementToRect):
1022
1023 2011-09-28  Peter Beverloo  <peter@chromium.org>
1024
1025         Don't clamp cubic-bezier timing functions between 0 and 1
1026         https://bugs.webkit.org/show_bug.cgi?id=45761
1027
1028         Remove the limitation of clamping the cubic-bezier timing function
1029         values between 0 and 1, following the specification change made on
1030         April 5 of this year.
1031
1032         Reviewed by Dean Jackson.
1033
1034         Tests: transitions/cubic-bezier-overflow-color.html
1035                transitions/cubic-bezier-overflow-length.html
1036                transitions/cubic-bezier-overflow-shadow.html
1037                transitions/cubic-bezier-overflow-svg-length.html
1038                transitions/cubic-bezier-overflow-transform.html
1039
1040         * css/CSSParser.cpp:
1041         (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
1042
1043 2011-09-28  Chris Rogers  <crogers@google.com>
1044
1045         DelayNode must set the context on delayTime AudioParam to support automation
1046         https://bugs.webkit.org/show_bug.cgi?id=68828
1047
1048         Reviewed by Kenneth Russell.
1049
1050         Test: webaudio/delaynode-scheduling.html
1051
1052         * webaudio/DelayNode.cpp:
1053         (WebCore::DelayNode::DelayNode):
1054
1055 2011-09-28  Sergey Glazunov  <serg.glazunov@gmail.com>
1056
1057         JavaScript generated documents don't inherit the cookie URL
1058         https://bugs.webkit.org/show_bug.cgi?id=69003
1059
1060         Reviewed by Adam Barth.
1061
1062         Test: http/tests/security/cookies/cookie-theft-with-javascript-doc.html
1063
1064         * dom/Document.h:
1065         (WebCore::Document::setCookieURL):
1066         * loader/DocumentWriter.cpp:
1067         (WebCore::DocumentWriter::replaceDocument):
1068         (WebCore::DocumentWriter::begin):
1069         * loader/DocumentWriter.h:
1070
1071 2011-09-27  Dimitri Glazkov  <dglazkov@chromium.org>
1072
1073         REGRESSION(r95573): Crash when loading SVG documents in a flattened frame or any SVG document in Chromium/Mac.
1074         https://bugs.webkit.org/show_bug.cgi?id=68938
1075
1076         Reviewed by David Hyatt.
1077
1078         Test: all svg tests in LayoutTests.
1079
1080         * rendering/RenderBlock.cpp:
1081         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Added a null-check for containingBlock.
1082
1083 2011-09-28  Una Sabovic  <una.sabovic@palm.com>
1084
1085         Setting innerText to an empty string on editable div loses focus
1086         https://bugs.webkit.org/show_bug.cgi?id=62092
1087
1088         Reviewed by Ryosuke Niwa.
1089
1090         When selection start or end node is being deleted do not clear the selection.
1091         Instead update the start/end position to an equivalent parent-anchored positions.
1092         When text is inserted/deleted update selection per range modification spec:
1093         http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation
1094
1095         Tests: editing/selection/document-mutation.html
1096                editing/selection/editable-div-clear-on-keydown.html
1097
1098         * editing/FrameSelection.cpp:
1099         (WebCore::FrameSelection::respondToNodeModification):
1100         (WebCore::updatePositionAfterAdoptingTextReplacement):
1101         (WebCore::FrameSelection::textWillBeReplaced):
1102         * editing/htmlediting.cpp:
1103         (WebCore::updatePositionForNodeRemoval):
1104
1105 2011-09-28  Joseph Pecoraro  <joepeck@webkit.org>
1106
1107         FTPDirectoryDocument Shows Garbled String for Last Modified Date
1108         https://bugs.webkit.org/show_bug.cgi?id=69011
1109
1110         Reviewed by Dan Bernstein.
1111
1112         Force WTF::String concatenation instead of an accidental char* pointer addition.
1113
1114         * html/FTPDirectoryDocument.cpp:
1115         (WebCore::processFileDateString):
1116
1117 2011-09-28  Nate Chapin  <japhet@chromium.org>
1118
1119         Fix a regression in r96060. ResourceLoader shouldn't get
1120         initialized with a null DocumentLoader.
1121         https://bugs.webkit.org/show_bug.cgi?id=69004
1122
1123         Reviewed by Csaba Osztrogonác.
1124
1125         This should fix a debug crash in some platforms in
1126         plugins/js-from-destroy.html
1127
1128         * loader/ResourceLoader.cpp:
1129         (WebCore::ResourceLoader::init): Move the activeDocumentLoader() null checks back
1130             to SubresouceLoader::create().
1131         * loader/SubresourceLoader.cpp:
1132         (WebCore::SubresourceLoader::create):
1133
1134 2011-09-28  Adam Barth  <abarth@webkit.org>
1135
1136         CSP doesn't work for a wide variety of cases
1137         https://bugs.webkit.org/show_bug.cgi?id=68921
1138
1139         Reviewed by Darin Adler.
1140
1141         Patch suggested by Sam Weinig.  It's unclear to me how to test this
1142         change because all our tests run on non-default ports, which is why we
1143         have this bug in the first place.  Mozilla uses a proxy while testing
1144         so they can test with URLs like http://example.com, but we don't have
1145         such a facility.
1146
1147         * page/ContentSecurityPolicy.cpp:
1148         (WebCore::CSPSource::portMatches):
1149
1150 2011-09-28  Fady Samuel  <fsamuel@chromium.org>
1151
1152         [Chromium] Seperate GTK specific Gyp rules from X11 Gyp rules
1153         https://bugs.webkit.org/show_bug.cgi?id=68936
1154
1155         Reviewed by Tony Chang.
1156
1157         Chromium need to be built without Gtk for future version of ChromiumOS.
1158
1159         * WebCore.gyp/WebCore.gyp:
1160
1161 2011-09-28  Tom Sepez  <tsepez@chromium.org>
1162
1163         Revert change which broke displaying end script tags in view-source, instead
1164         deal with any trailing </script> tag included by mistake in the XSSAuditor
1165         itself.  Correct tests to detect the missing close tags.
1166         https://bugs.webkit.org/show_bug.cgi?id=68898
1167
1168         Reviewed by Adam Barth.
1169
1170         * html/parser/HTMLSourceTracker.cpp:
1171         (WebCore::HTMLSourceTracker::end):
1172         * html/parser/HTMLTokenizer.cpp:
1173         (WebCore::HTMLTokenizer::nextToken):
1174         * html/parser/XSSAuditor.cpp:
1175         (WebCore::startsHTMLEndTagAt):
1176         (WebCore::XSSAuditor::snippetForJavaScript):
1177
1178 2011-09-28  Adam Barth  <abarth@webkit.org>
1179
1180         Remove empty directories.
1181
1182         * editing/brew: Removed.
1183         * page/brew: Removed.
1184         * platform/brew: Removed.
1185         * platform/graphics/brew: Removed.
1186         * platform/network/brew: Removed.
1187         * platform/text/brew: Removed.
1188
1189 2011-09-28  Ilya Tikhonovsky  <loislo@chromium.org>
1190
1191         Web Inspector: optional arguments support for the frontend needs to be extended.
1192         https://bugs.webkit.org/show_bug.cgi?id=69005
1193
1194         Generator supports optional arguments but they are transferred by value.
1195         It is not suitable if the used type doesn't have operator bool.
1196         I'll transfer such arguments by pointer.
1197
1198         Reviewed by Pavel Feldman.
1199
1200         Build is the test.
1201
1202         * inspector/CodeGeneratorInspector.pm:
1203         (generateFrontendFunction):
1204         (paramTypeTraits):
1205         * inspector/InspectorDebuggerAgent.cpp:
1206         (WebCore::InspectorDebuggerAgent::didParseSource):
1207         * inspector/InspectorResourceAgent.cpp:
1208         (WebCore::InspectorResourceAgent::didFailLoading):
1209
1210 2011-09-28  Antaryami Pandia  <antaryami.pandia@motorola.com>
1211
1212         Reflected attribute input.size wraps on negative values (Chrome), or
1213         returns them (Safari).
1214         https://bugs.webkit.org/show_bug.cgi?id=44886
1215
1216         Reviewed by Darin Adler.
1217
1218         Test: fast/dom/HTMLInputElement/input-size-attribute.html
1219
1220         * html/HTMLInputElement.cpp:
1221         (WebCore::HTMLInputElement::parseMappedAttribute):
1222
1223 2011-09-28  Vsevolod Vlasov  <vsevik@chromium.org>
1224
1225         Web Inspector: Add support for search in single resource to page agent.
1226         https://bugs.webkit.org/show_bug.cgi?id=68998
1227
1228         Reviewed by Pavel Feldman.
1229
1230         Test: http/tests/inspector/search/search-in-resource.html
1231
1232         * inspector/ContentSearchUtils.cpp:
1233         (WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
1234         * inspector/ContentSearchUtils.h:
1235         * inspector/Inspector.json:
1236         * inspector/InspectorPageAgent.cpp:
1237         (WebCore::buildObjectForSearchMatch):
1238         (WebCore::InspectorPageAgent::searchInResource):
1239         * inspector/InspectorPageAgent.h:
1240         * inspector/front-end/Resource.js:
1241         (WebInspector.Resource.prototype.searchInContent):
1242         * inspector/front-end/SourceFile.js:
1243         (WebInspector.ResourceContentProvider.prototype.requestContent):
1244         (WebInspector.ResourceContentProvider.prototype.searchInContent):
1245         * inspector/front-end/UISourceCode.js:
1246         (WebInspector.ContentProvider.prototype.requestContent):
1247         (WebInspector.ContentProvider.prototype.searchInContent):
1248
1249 2011-09-28  Ilya Tikhonovsky  <loislo@chromium.org>
1250
1251         Web Inspector: It'd be useful to have performance stats for the back-end to front-end communication channel.
1252         https://bugs.webkit.org/show_bug.cgi?id=69002
1253
1254         Reviewed by Yury Semikhatsky.
1255
1256         * inspector/CodeGeneratorInspector.pm:
1257
1258 2011-09-27  Pavel Podivilov  <podivilov@chromium.org>
1259
1260         Web Inspector: live edit cursor always appears at the beginning of the file.
1261         https://bugs.webkit.org/show_bug.cgi?id=68900
1262
1263         Reviewed by Pavel Feldman.
1264
1265         * inspector/front-end/TextViewer.js:
1266         (WebInspector.TextEditorMainPanel.prototype._updateSelectionOnStartEditing):
1267
1268 2011-09-28  Vsevolod Vlasov  <vsevik@chromium.org>
1269
1270         Web Inspector: Refactor searching in inspector, add test (fixed non regex search).
1271         https://bugs.webkit.org/show_bug.cgi?id=68930
1272
1273         Reviewed by Yury Semikhatsky.
1274
1275         Search moved out from page agent.
1276         Fixed search for non regex case which is not yet used.
1277
1278         Test: http/tests/inspector/search/search-in-resources.html
1279
1280         * CMakeLists.txt:
1281         * GNUmakefile.list.am:
1282         * WebCore.gypi:
1283         * WebCore.pro:
1284         * WebCore.vcproj/WebCore.vcproj:
1285         * WebCore.xcodeproj/project.pbxproj:
1286         * inspector/ContentSearchUtils.cpp: Added.
1287         (WebCore::ContentSearchUtils::createSearchRegexSource):
1288         (WebCore::ContentSearchUtils::createSearchRegex):
1289         (WebCore::ContentSearchUtils::countRegularExpressionMatches):
1290         * inspector/ContentSearchUtils.h: Added.
1291         * inspector/InspectorPageAgent.cpp:
1292         (WebCore::hasTextContent):
1293         (WebCore::InspectorPageAgent::cachedResourceContent):
1294         (WebCore::textContentForCachedResource):
1295         (WebCore::buildObjectForSearchResult):
1296         (WebCore::InspectorPageAgent::searchInResources):
1297         * inspector/front-end/utilities.js:
1298         ():
1299
1300 2011-09-28  Kentaro Hara  <haraken@chromium.org>
1301
1302         Implement a PopStateEvent constructor for V8
1303         https://bugs.webkit.org/show_bug.cgi?id=68896
1304
1305         Reviewed by Adam Barth.
1306
1307         Test: fast/events/constructors/pop-state-event-constructor.html
1308
1309         * bindings/v8/custom/V8EventConstructors.cpp: Added a PopStateEvent constructor.
1310         * dom/PopStateEvent.idl: Added a 'V8CustomConstructor' attribute.
1311
1312 2011-09-28  No'am Rosenthal  <noam.rosenthal@nokia.com>
1313
1314         [Texmap] Allow TextureMapperGL to work without a GraphicsContext
1315         https://bugs.webkit.org/show_bug.cgi?id=68980
1316
1317         Reviewed by Andreas Kling.
1318
1319         Perform a null-check for m_context and initialize that variable.
1320         If a graphics-context doesn't exist, we don't need to reset it.
1321
1322         No new functionality so no new tests.
1323
1324         * platform/graphics/opengl/TextureMapperGL.cpp:
1325         (WebCore::TextureMapperGL::TextureMapperGL):
1326         (WebCore::TextureMapperGL::beginPainting):
1327         (WebCore::TextureMapperGL::endPainting):
1328
1329 2011-09-28  Kentaro Hara  <haraken@chromium.org>
1330
1331         Implement an ErrorEvent constructor for V8
1332         https://bugs.webkit.org/show_bug.cgi?id=68336
1333
1334         Reviewed by Adam Barth.
1335
1336         Test: fast/events/constructors/error-event-constructor.html
1337
1338         * bindings/v8/OptionsObject.cpp:
1339         (WebCore::OptionsObject::getKeyValue): Returns an unsigned value corresponding to a given key.
1340         * bindings/v8/OptionsObject.h:
1341         * bindings/v8/custom/V8EventConstructors.cpp: Added the ErrorEvent constructor.
1342         * dom/ErrorEvent.idl: Added a 'V8CustomConstructor' attribute.
1343
1344 2011-09-27  Andy Estes  <aestes@apple.com>
1345
1346         WebKitLinkedOnOrAfter() check is ineffective for Solar Walk app-specific hack.
1347         https://bugs.webkit.org/show_bug.cgi?id=68863
1348
1349         Reviewed by Darin Adler.
1350
1351         The SolarWalk binary does not link against WebKit.framework directly,
1352         so calling NSVersionOfLinkTimeLibrary() will not return the version of
1353         WebKit against which SolarWalk was linked. Since Solar Walk has
1354         released an update that addresses the issue for which this app-specific
1355         hack was originally added, we should just remove the hack.
1356
1357         * WebCore.exp.in: Remove applicationIsSolarWalkMac().
1358         * platform/RuntimeApplicationChecks.cpp: Ditto.
1359         * platform/RuntimeApplicationChecks.h: Ditto.
1360
1361 2011-09-28  Tim Horton  <timothy_horton@apple.com>
1362
1363         Fix potential SVG performance regression (over-invalidation of caches) from 96052
1364         https://bugs.webkit.org/show_bug.cgi?id=68941
1365         <rdar://problem/10196224>
1366
1367         Reviewed by Zoltan Herczeg.
1368
1369         Only invalidate the cache of a filter when target style changes, as of the different types of cached
1370         resources, only filters make use of the style of the target element and thus need to be invalidated
1371         when the target style changes.
1372
1373         No new tests, performance improvement.
1374
1375         * rendering/svg/SVGResourcesCache.cpp:
1376         (WebCore::SVGResourcesCache::clientUpdatedFromElement):
1377
1378 2011-09-28  Adenilson Cavalcanti  <adenilson.silva@openbossa.org>
1379
1380         Missing initialization of member in ImageFrameQt class
1381         https://bugs.webkit.org/show_bug.cgi?id=68943
1382
1383         Reviewed by Kenneth Rohde Christiansen.
1384
1385         No new tests, this fixes internal implementation detail.
1386
1387         * platform/image-decoders/qt/ImageFrameQt.cpp:
1388         (WebCore::ImageFrame::ImageFrame):
1389         (WebCore::ImageFrame::operator=):
1390
1391 2011-09-27  Luke Macpherson   <macpherson@chromium.org>
1392
1393         Defer call to CSSValue::isPrimitiveValue(), saves ~4% in CSSStyleSelector::applyProperty().
1394         https://bugs.webkit.org/show_bug.cgi?id=68964
1395
1396         Reviewed by Eric Seidel.
1397
1398         No new tests / no functionality changed.
1399
1400         Doing value->isPrimitiveValue() is relatviely expensive, so moving it after the early returns but
1401         before the result is used saves a significant number of cycles. (Tested with Shark profiler in Safari).
1402
1403         * css/CSSStyleSelector.cpp:
1404         (WebCore::CSSStyleSelector::applyProperty):
1405
1406 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
1407
1408         Simplify ReplaceSelectionCommand::positionAtStartOfInsertedContent
1409         https://bugs.webkit.org/show_bug.cgi?id=68939
1410
1411         Reviewed by Darin Adler.
1412
1413         Simplified ReplaceSelectionCommand::positionAtStartOfInsertedContent.
1414
1415         This change revealed a bug in removeUnrenderedTextNodesAtEnds that text nodes without any visible
1416         text at ends are not removed when it has a render object. Fixed the bug by checking the length of
1417         the rendered text. (Tested by editing/pasteboard/pasting-word-in-div-extra-line.html)
1418
1419         This further revealed that caretMaxRenderedOffset doesn't return an offset and caretMaxRenderedOffset
1420         on InlineBox, InlineTextBox, RenderObject, RenderBR, RenderPlaced are never called. To address this
1421         issue, renamed caretMaxRenderedOffset to renderedTextLength for RenderText and removed the rest.
1422
1423         * dom/Position.cpp:
1424         (WebCore::Position::rendersInDifferentPosition):
1425         * editing/ReplaceSelectionCommand.cpp:
1426         (WebCore::nodeHasVisibleRenderText): Added.
1427         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Calls nodeHasVisibleRenderText.
1428         (WebCore::ReplaceSelectionCommand::positionAtStartOfInsertedContent): Simplified.
1429         * editing/visible_units.cpp:
1430         (WebCore::startOfParagraph): Calls renderedTextLength.
1431         (WebCore::endOfParagraph): Ditto.
1432         * rendering/InlineBox.cpp: Removed caretMaxRenderedOffset.
1433         * rendering/InlineBox.h: Ditto.
1434         * rendering/InlineTextBox.cpp: Ditto.
1435         * rendering/InlineTextBox.h: Ditto.
1436         * rendering/RenderBR.cpp: Ditto.
1437         * rendering/RenderBR.h: Ditto.
1438         * rendering/RenderObject.cpp: Ditto.
1439         * rendering/RenderObject.h: Ditto.
1440         * rendering/RenderReplaced.cpp: Ditto.
1441         * rendering/RenderReplaced.h: Ditto.
1442         * rendering/RenderText.cpp:
1443         (WebCore::RenderText::renderedTextLength): Renamed from caretMaxRenderedOffset.
1444         * rendering/RenderText.h:
1445
1446 2011-09-27  James Robinson  <jamesr@chromium.org>
1447
1448         [chromium] LayerRenderChromium asserts about leaking textures.
1449         https://bugs.webkit.org/show_bug.cgi?id=68190
1450
1451         Reviewed by Kenneth Russell.
1452
1453         This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
1454         This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
1455         enum type, making it more testable.  It also allows us to track the allocations by subclassing TextureAllocator
1456         to make sure we aren't leaking any textures.
1457
1458         * WebCore.gypi:
1459         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1460         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
1461         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1462         * platform/graphics/chromium/ImageLayerChromium.cpp:
1463         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
1464         * platform/graphics/chromium/LayerChromium.h:
1465         (WebCore::LayerChromium::updateCompositorResources):
1466         * platform/graphics/chromium/LayerRendererChromium.cpp:
1467         (WebCore::LayerRendererChromium::LayerRendererChromium):
1468         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
1469         (WebCore::LayerRendererChromium::drawLayers):
1470         (WebCore::LayerRendererChromium::useRenderSurface):
1471         (WebCore::LayerRendererChromium::initializeSharedObjects):
1472         (WebCore::LayerRendererChromium::cleanupSharedObjects):
1473         * platform/graphics/chromium/LayerRendererChromium.h:
1474         (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
1475         (WebCore::LayerRendererChromium::contentsTextureAllocator):
1476         * platform/graphics/chromium/LayerTextureUpdater.h:
1477         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
1478         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
1479         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
1480         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
1481         * platform/graphics/chromium/ManagedTexture.cpp:
1482         (WebCore::ManagedTexture::bindTexture):
1483         (WebCore::ManagedTexture::framebufferTexture2D):
1484         * platform/graphics/chromium/ManagedTexture.h:
1485         * platform/graphics/chromium/TextureManager.cpp:
1486         (WebCore::TextureManager::memoryUseBytes):
1487         (WebCore::TextureManager::deleteEvictedTextures):
1488         (WebCore::TextureManager::evictAndDeleteAllTextures):
1489         (WebCore::TextureManager::removeTexture):
1490         (WebCore::TextureManager::allocateTexture):
1491         (WebCore::TextureManager::requestTexture):
1492         * platform/graphics/chromium/TextureManager.h:
1493         (WebCore::TextureAllocator::~TextureAllocator):
1494         * platform/graphics/chromium/TiledLayerChromium.cpp:
1495         (WebCore::TiledLayerChromium::updateCompositorResources):
1496         * platform/graphics/chromium/TiledLayerChromium.h:
1497         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
1498         (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
1499         (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
1500         (WebCore::TrackingTextureAllocator::createTexture):
1501         (WebCore::TrackingTextureAllocator::deleteTexture):
1502         * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
1503         (WebCore::TrackingTextureAllocator::create):
1504         (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
1505         * platform/graphics/chromium/VideoLayerChromium.cpp:
1506         (WebCore::VideoLayerChromium::updateCompositorResources):
1507         (WebCore::VideoLayerChromium::updateTexture):
1508         * platform/graphics/chromium/VideoLayerChromium.h:
1509         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1510         (WebCore::WebGLLayerChromium::updateCompositorResources):
1511         * platform/graphics/chromium/WebGLLayerChromium.h:
1512         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1513         (WebCore::CCHeadsUpDisplay::draw):
1514         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1515         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
1516         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
1517         (WebCore::CCLayerTreeHost::commitToOnCCThread):
1518         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
1519         (WebCore::CCLayerTreeHost::updateCompositorResources):
1520         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1521         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1522         (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
1523         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1524         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1525         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1526         (WebCore::CCRenderSurface::drawSurface):
1527         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1528         (WebCore::CCSingleThreadProxy::setNeedsCommit):
1529         (WebCore::CCSingleThreadProxy::stop):
1530         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
1531         (WebCore::CCSingleThreadProxy::commitIfNeeded):
1532         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1533         (WebCore::CCThreadProxy::commitOnCCThread):
1534         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
1535 2011-09-27  James Robinson  <jamesr@chromium.org>
1536
1537         [chromium] Only initiate the beginFrameAndCommit sequence if a commit has been requested
1538         https://bugs.webkit.org/show_bug.cgi?id=68967
1539
1540         Reviewed by Kenneth Russell.
1541
1542         When updating the scheduler state, we should only initiate a new commit flow if a commit has been requested (as
1543         opposed to only a redraw).
1544
1545         Covered by the unit test CCLayerTreeHostTestSetNeedsRedraw with USE(THREADED_COMPOSITING) set to true.
1546
1547         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1548         (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
1549
1550 2011-09-27  Kentaro Hara  <haraken@chromium.com>
1551
1552         Implement a PageTransitionEvent constructor for V8
1553         https://bugs.webkit.org/show_bug.cgi?id=68067
1554
1555         Reviewed by Adam Barth.
1556
1557         Test: fast/events/constructors/page-transition-event-constructor.html
1558
1559         * bindings/v8/custom/V8EventConstructors.cpp: Added the PageTransitionEvent constructor.
1560         * dom/PageTransitionEvent.idl: Added a 'V8CustomConstructor' attribute.
1561
1562 2011-09-27  Kentaro Hara  <haraken@chromium.org>
1563
1564         Implement a MessageEvent constructor for JSC
1565         https://bugs.webkit.org/show_bug.cgi?id=68883
1566
1567         Reviewed by Adam Barth.
1568
1569         The spec for MessageEvent is here:
1570         http://www.whatwg.org/specs/web-apps/current-work/#messageevent
1571
1572         Currently, some tests in fast/events/constructors/message-event-constructor.html
1573         are failing or crashing in DRT, as we commented in the test file.
1574         This is because MessageEvent.data is implemented as SerializedScriptValue,
1575         and thus it cannot keep ScriptValue passed by JavaScript.
1576         This is the same issue as the bug (https://bugs.webkit.org/show_bug.cgi?id=68345).
1577         We will soon make a follow-up patch to fix these failures, after this
1578         patch is landed.
1579
1580         Test: fast/events/constructors/message-event-constructor.html
1581
1582         * bindings/generic/EventConstructors.h: Added a definition for the MessageEvent constructor.
1583         * bindings/js/JSDictionary.cpp:
1584         (WebCore::JSDictionary::convertValue): Generates MessagePortArray from the list of message ports in the format of JSValues.
1585         * bindings/js/JSDictionary.h:
1586         * bindings/js/JSEventConstructors.cpp: Added #includes for MessageEvent.
1587         * dom/MessageEvent.cpp:
1588         (WebCore::MessageEventInit::MessageEventInit):
1589         (WebCore::MessageEvent::MessageEvent):
1590         (WebCore::MessageEvent::initMessageEvent):
1591         * dom/MessageEvent.h: Added a definition for MessageEvent. Removed an extra leading spaces.
1592         (WebCore::MessageEvent::create):
1593         (WebCore::MessageEvent::origin):
1594         (WebCore::MessageEvent::lastEventId):
1595         (WebCore::MessageEvent::source):
1596         (WebCore::MessageEvent::ports):
1597         (WebCore::MessageEvent::dataType):
1598         (WebCore::MessageEvent::dataAsSerializedScriptValue):
1599         (WebCore::MessageEvent::dataAsString):
1600         (WebCore::MessageEvent::dataAsBlob):
1601         (WebCore::MessageEvent::dataAsArrayBuffer):
1602         * dom/MessageEvent.idl: Makes MessageEvent constructible.
1603
1604 2011-09-27  Eric Uhrhane  <ericu@chromium.org>
1605
1606         [Chromium/FileWriter] race condition in FileWriter completion can lead to assert
1607         https://bugs.webkit.org/show_bug.cgi?id=67684
1608
1609         Reviewed by David Levin.
1610
1611         Tests: fast/filesystem/file-writer-abort-continue.html
1612                fast/filesystem/file-writer-abort.html
1613
1614         Track the state of the backend and be prepared for reentrant user
1615         requests.  Limit recursion depth to an arbitrary small constant.
1616         * fileapi/FileWriter.cpp: Lots of event-handling changes.
1617         * fileapi/FileWriter.h:
1618
1619 2011-09-27  Mihai Parparita  <mihaip@chromium.org>
1620
1621         Unreviewed, rolling out r96141.
1622         http://trac.webkit.org/changeset/96141
1623         https://bugs.webkit.org/show_bug.cgi?id=68190
1624
1625         Breaks PrerenderBrowserTest.PrerenderHTML5Video in
1626         browser_tests
1627
1628         * WebCore.gypi:
1629         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
1630         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
1631         * platform/graphics/chromium/Canvas2DLayerChromium.h:
1632         * platform/graphics/chromium/ImageLayerChromium.cpp:
1633         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
1634         * platform/graphics/chromium/LayerChromium.h:
1635         (WebCore::LayerChromium::updateCompositorResources):
1636         * platform/graphics/chromium/LayerRendererChromium.cpp:
1637         (WebCore::LayerRendererChromium::LayerRendererChromium):
1638         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
1639         (WebCore::LayerRendererChromium::drawLayers):
1640         (WebCore::LayerRendererChromium::createLayerTexture):
1641         (WebCore::LayerRendererChromium::deleteLayerTexture):
1642         (WebCore::LayerRendererChromium::useRenderSurface):
1643         (WebCore::LayerRendererChromium::initializeSharedObjects):
1644         (WebCore::LayerRendererChromium::cleanupSharedObjects):
1645         * platform/graphics/chromium/LayerRendererChromium.h:
1646         (WebCore::LayerRendererChromium::setContentsTextureMemoryUseBytes):
1647         * platform/graphics/chromium/LayerTextureUpdater.h:
1648         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
1649         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
1650         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
1651         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
1652         * platform/graphics/chromium/ManagedTexture.cpp:
1653         (WebCore::ManagedTexture::bindTexture):
1654         (WebCore::ManagedTexture::framebufferTexture2D):
1655         * platform/graphics/chromium/ManagedTexture.h:
1656         * platform/graphics/chromium/TextureManager.cpp:
1657         (WebCore::memoryUseBytes):
1658         (WebCore::TextureManager::deleteEvictedTextures):
1659         (WebCore::TextureManager::evictAndDeleteAllTextures):
1660         (WebCore::TextureManager::removeTexture):
1661         (WebCore::TextureManager::allocateTexture):
1662         (WebCore::TextureManager::requestTexture):
1663         * platform/graphics/chromium/TextureManager.h:
1664         * platform/graphics/chromium/TiledLayerChromium.cpp:
1665         (WebCore::TiledLayerChromium::updateCompositorResources):
1666         * platform/graphics/chromium/TiledLayerChromium.h:
1667         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Removed.
1668         * platform/graphics/chromium/TrackingTextureAllocator.h: Removed.
1669         * platform/graphics/chromium/VideoLayerChromium.cpp:
1670         (WebCore::VideoLayerChromium::updateCompositorResources):
1671         (WebCore::VideoLayerChromium::updateTexture):
1672         * platform/graphics/chromium/VideoLayerChromium.h:
1673         * platform/graphics/chromium/WebGLLayerChromium.cpp:
1674         (WebCore::WebGLLayerChromium::updateCompositorResources):
1675         * platform/graphics/chromium/WebGLLayerChromium.h:
1676         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
1677         (WebCore::CCHeadsUpDisplay::draw):
1678         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
1679         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
1680         (WebCore::CCLayerTreeHost::deleteContentsTextures):
1681         (WebCore::CCLayerTreeHost::commitTo):
1682         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
1683         (WebCore::CCLayerTreeHost::updateCompositorResources):
1684         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp.rej: Removed.
1685         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
1686         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
1687         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
1688         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
1689         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
1690         (WebCore::CCRenderSurface::drawSurface):
1691         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
1692         (WebCore::CCSingleThreadProxy::setNeedsCommit):
1693         (WebCore::CCSingleThreadProxy::stop):
1694         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
1695         (WebCore::CCSingleThreadProxy::commitIfNeeded):
1696         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
1697         (WebCore::CCThreadProxy::commitOnCCThread):
1698         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
1699
1700 2011-09-27  James Robinson  <jamesr@chromium.org>
1701
1702         [chromium] Guard accelerated skia drawing logic with its own define to remove dependency on USE(THREADED_COMPOSITING)
1703         https://bugs.webkit.org/show_bug.cgi?id=68953
1704
1705         Reviewed by Kenneth Russell.
1706
1707         The accelerated drawing code is incompatible with threaded compositing. Rather than tying the two behaviors
1708         together via USE(THREADED_COMPOSITING), this patch guards the accelerated drawing code with its own USE() guard
1709         so the features can advance independently. Today, it's not safe to set both of these flags.
1710
1711         * platform/graphics/chromium/ContentLayerChromium.cpp:
1712         (WebCore::ContentLayerChromium::createTextureUpdater):
1713         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
1714         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
1715
1716 2011-09-27  Luke Macpherson   <macpherson@chromium.org>
1717
1718         Slightly improve performance of CSSStyleApplyProperty handler lookup.
1719         https://bugs.webkit.org/show_bug.cgi?id=68868
1720
1721         Reviewed by Eric Seidel.
1722
1723         No new tests as no functionality changed.
1724
1725         * css/CSSStyleApplyProperty.h:
1726         (WebCore::CSSStyleApplyProperty::propertyHandler):
1727         Make propertyHandler() public and remove redirecting functions.
1728         * css/CSSStyleSelector.cpp:
1729         (WebCore::CSSStyleSelector::applyProperty):
1730         Perform property handler lookup once and reuse the result.
1731
1732 2011-09-27  Kent Tamura  <tkent@chromium.org>
1733
1734         [V8] element.dataset.nonExistingKey should return undefined.
1735         https://bugs.webkit.org/show_bug.cgi?id=68877
1736
1737         Reviewed by Nate Chapin.
1738
1739         * bindings/v8/custom/V8DOMStringMapCustom.cpp:
1740         (WebCore::V8DOMStringMap::namedPropertyGetter): Uses v8StringOrUndefined() instead of v8String().
1741
1742 2011-09-23  Mark Hahnenberg  <mhahnenberg@apple.com>
1743
1744         Add static version of JSCell::visitChildren
1745         https://bugs.webkit.org/show_bug.cgi?id=68404
1746
1747         Reviewed by Darin Adler.
1748
1749         No new tests.
1750
1751         In this patch we just extract the bodies of the virtual visitChildren methods
1752         throughout the JSCell inheritance hierarchy out into static methods, which are 
1753         now called from the virtual methods.  This is an intermediate step in trying to 
1754         move the virtual-ness of visitChildren into our own custom vtable stored in 
1755         ClassInfo.  We need to convert the methods to static methods in order to be 
1756         able to more easily store and refer to them in our custom vtable since normal 
1757         member methods store some implicit information in their types, making it 
1758         impossible to store them generically in ClassInfo.
1759
1760         * WebCore.exp.in:
1761         * bindings/js/JSAttrCustom.cpp:
1762         (WebCore::JSAttr::visitChildrenVirtual):
1763         (WebCore::JSAttr::visitChildren):
1764         * bindings/js/JSAudioContextCustom.cpp:
1765         (WebCore::JSAudioContext::visitChildrenVirtual):
1766         (WebCore::JSAudioContext::visitChildren):
1767         * bindings/js/JSCSSRuleCustom.cpp:
1768         (WebCore::JSCSSRule::visitChildrenVirtual):
1769         (WebCore::JSCSSRule::visitChildren):
1770         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1771         (WebCore::JSCSSStyleDeclaration::visitChildrenVirtual):
1772         (WebCore::JSCSSStyleDeclaration::visitChildren):
1773         * bindings/js/JSCanvasRenderingContextCustom.cpp:
1774         (WebCore::JSCanvasRenderingContext::visitChildrenVirtual):
1775         (WebCore::JSCanvasRenderingContext::visitChildren):
1776         * bindings/js/JSDOMGlobalObject.cpp:
1777         (WebCore::JSDOMGlobalObject::visitChildrenVirtual):
1778         (WebCore::JSDOMGlobalObject::visitChildren):
1779         * bindings/js/JSDOMGlobalObject.h:
1780         * bindings/js/JSDOMWindowCustom.cpp:
1781         (WebCore::JSDOMWindow::visitChildrenVirtual):
1782         (WebCore::JSDOMWindow::visitChildren):
1783         * bindings/js/JSDOMWindowShell.cpp:
1784         (WebCore::JSDOMWindowShell::visitChildrenVirtual):
1785         (WebCore::JSDOMWindowShell::visitChildren):
1786         * bindings/js/JSDOMWindowShell.h:
1787         * bindings/js/JSJavaScriptAudioNodeCustom.cpp:
1788         (WebCore::JSJavaScriptAudioNode::visitChildrenVirtual):
1789         (WebCore::JSJavaScriptAudioNode::visitChildren):
1790         * bindings/js/JSMessageChannelCustom.cpp:
1791         (WebCore::JSMessageChannel::visitChildrenVirtual):
1792         (WebCore::JSMessageChannel::visitChildren):
1793         * bindings/js/JSMessagePortCustom.cpp:
1794         (WebCore::JSMessagePort::visitChildrenVirtual):
1795         (WebCore::JSMessagePort::visitChildren):
1796         * bindings/js/JSNamedNodeMapCustom.cpp:
1797         (WebCore::JSNamedNodeMap::visitChildrenVirtual):
1798         (WebCore::JSNamedNodeMap::visitChildren):
1799         * bindings/js/JSNodeCustom.cpp:
1800         (WebCore::JSNode::visitChildrenVirtual):
1801         (WebCore::JSNode::visitChildren):
1802         * bindings/js/JSNodeFilterCustom.cpp:
1803         (WebCore::JSNodeFilter::visitChildrenVirtual):
1804         (WebCore::JSNodeFilter::visitChildren):
1805         * bindings/js/JSNodeIteratorCustom.cpp:
1806         (WebCore::JSNodeIterator::visitChildrenVirtual):
1807         (WebCore::JSNodeIterator::visitChildren):
1808         * bindings/js/JSSVGElementInstanceCustom.cpp:
1809         (WebCore::JSSVGElementInstance::visitChildrenVirtual):
1810         (WebCore::JSSVGElementInstance::visitChildren):
1811         * bindings/js/JSSharedWorkerCustom.cpp:
1812         (WebCore::JSSharedWorker::visitChildrenVirtual):
1813         (WebCore::JSSharedWorker::visitChildren):
1814         * bindings/js/JSStyleSheetCustom.cpp:
1815         (WebCore::JSStyleSheet::visitChildrenVirtual):
1816         (WebCore::JSStyleSheet::visitChildren):
1817         * bindings/js/JSTreeWalkerCustom.cpp:
1818         (WebCore::JSTreeWalker::visitChildrenVirtual):
1819         (WebCore::JSTreeWalker::visitChildren):
1820         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1821         (WebCore::JSWebGLRenderingContext::visitChildrenVirtual):
1822         (WebCore::JSWebGLRenderingContext::visitChildren):
1823         * bindings/js/JSWorkerContextCustom.cpp:
1824         (WebCore::JSWorkerContext::visitChildrenVirtual):
1825         (WebCore::JSWorkerContext::visitChildren):
1826         * bindings/js/JSXMLHttpRequestCustom.cpp:
1827         (WebCore::JSXMLHttpRequest::visitChildrenVirtual):
1828         (WebCore::JSXMLHttpRequest::visitChildren):
1829         * bindings/js/JSXPathResultCustom.cpp:
1830         (WebCore::JSXPathResult::visitChildrenVirtual):
1831         (WebCore::JSXPathResult::visitChildren):
1832         * bindings/scripts/CodeGeneratorJS.pm:
1833         (GenerateHeader):
1834         (GenerateImplementation):
1835         * bindings/scripts/test/JS/JSTestObj.cpp:
1836         (WebCore::JSTestObj::visitChildrenVirtual):
1837         (WebCore::JSTestObj::visitChildren):
1838         * bindings/scripts/test/JS/JSTestObj.h:
1839         * bridge/qt/qt_instance.cpp:
1840         (JSC::Bindings::QtRuntimeObject::visitChildrenVirtual):
1841         (JSC::Bindings::QtRuntimeObject::visitChildren):
1842         * bridge/qt/qt_runtime.cpp:
1843         (JSC::Bindings::QtRuntimeMetaMethod::visitChildrenVirtual):
1844         (JSC::Bindings::QtRuntimeMetaMethod::visitChildren):
1845         * bridge/qt/qt_runtime.h:
1846         * workers/WorkerContext.h:
1847
1848 <<<<<<< .mine
1849 2011-09-27  Mark Hahnenberg  <mhahnenberg@apple.com>
1850
1851         Add static version of JSCell::getCallData
1852         https://bugs.webkit.org/show_bug.cgi?id=68741
1853
1854         Reviewed by Darin Adler.
1855
1856         No new tests.
1857
1858         In this patch we just extract the bodies of the virtual getCallData methods
1859         throughout the JSCell inheritance hierarchy out into static methods, which are 
1860         now called from the virtual methods.  This is an intermediate step in trying to 
1861         move the virtual-ness of getCallData into our own method table stored in 
1862         ClassInfo.  We need to convert the methods to static methods because static methods 
1863         can be represented as function pointers rather than pointers to member functions, and
1864         function pointers are smaller and faster to call than pointers to member functions.
1865
1866         * WebCore.exp.in:
1867         * bindings/js/JSCallbackData.cpp:
1868         (WebCore::JSCallbackData::invokeCallback):
1869         * bindings/js/JSCustomXPathNSResolver.cpp:
1870         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
1871         * bindings/js/JSErrorHandler.cpp:
1872         (WebCore::JSErrorHandler::handleEvent):
1873         * bindings/js/JSEventListener.cpp:
1874         (WebCore::JSEventListener::handleEvent):
1875         * bindings/js/JSHTMLAllCollectionCustom.cpp:
1876         (WebCore::JSHTMLAllCollection::getCallDataVirtual):
1877         (WebCore::JSHTMLAllCollection::getCallData):
1878         * bindings/js/JSHTMLAppletElementCustom.cpp:
1879         (WebCore::JSHTMLAppletElement::getCallDataVirtual):
1880         (WebCore::JSHTMLAppletElement::getCallData):
1881         * bindings/js/JSHTMLEmbedElementCustom.cpp:
1882         (WebCore::JSHTMLEmbedElement::getCallDataVirtual):
1883         (WebCore::JSHTMLEmbedElement::getCallData):
1884         * bindings/js/JSHTMLObjectElementCustom.cpp:
1885         (WebCore::JSHTMLObjectElement::getCallDataVirtual):
1886         (WebCore::JSHTMLObjectElement::getCallData):
1887         * bindings/js/JSInjectedScriptHostCustom.cpp:
1888         (WebCore::JSInjectedScriptHost::evaluate):
1889         * bindings/js/JSPluginElementFunctions.cpp:
1890         (WebCore::runtimeObjectGetCallData):
1891         * bindings/scripts/CodeGeneratorJS.pm:
1892         (GenerateHeader):
1893         * bridge/objc/objc_runtime.h:
1894         * bridge/objc/objc_runtime.mm:
1895         (JSC::Bindings::ObjcFallbackObjectImp::getCallDataVirtual):
1896         (JSC::Bindings::ObjcFallbackObjectImp::getCallData):
1897         * bridge/qt/qt_runtime.cpp:
1898         (JSC::Bindings::QtRuntimeMetaMethod::getCallDataVirtual):
1899         (JSC::Bindings::QtRuntimeMetaMethod::getCallData):
1900         (JSC::Bindings::QtRuntimeConnectionMethod::call):
1901         (JSC::Bindings::QtRuntimeConnectionMethod::getCallDataVirtual):
1902         (JSC::Bindings::QtRuntimeConnectionMethod::getCallData):
1903         (JSC::Bindings::isJavaScriptFunction):
1904         * bridge/qt/qt_runtime.h:
1905         * bridge/runtime_method.cpp:
1906         (JSC::RuntimeMethod::getCallDataVirtual):
1907         (JSC::RuntimeMethod::getCallData):
1908         * bridge/runtime_method.h:
1909         * bridge/runtime_object.cpp:
1910         (JSC::Bindings::RuntimeObject::getCallDataVirtual):
1911         (JSC::Bindings::RuntimeObject::getCallData):
1912         * bridge/runtime_object.h:
1913
1914 =======
1915 2011-09-27  Dean Jackson  <dino@apple.com>
1916
1917         Unreviewed. Remove duplicate FilterOperation{s}.h that were
1918         accidentally added to the top level of the Xcode project.
1919
1920         * WebCore.xcodeproj/project.pbxproj:
1921
1922 >>>>>>> .r96163
1923 2011-09-27  David Hyatt  <hyatt@apple.com>
1924
1925         https://bugs.webkit.org/show_bug.cgi?id=68940
1926
1927         Narrow the float/lines pagination heuristic to only kick in if
1928         the previous line broke cleanly and if the floats are occurring
1929         at the start of the line.
1930
1931         Reviewed by Dan Bernstein.
1932
1933         * rendering/RenderBlockLineLayout.cpp:
1934         (WebCore::RenderBlock::positionNewFloatOnLine):
1935
1936 2011-09-27  James Robinson  <jamesr@chromium.org>
1937
1938         Add a mechanism to test for the compositing tree mutated during painting
1939         https://bugs.webkit.org/show_bug.cgi?id=68738
1940
1941         Reviewed by Adam Barth.
1942
1943         Sets a static bool during GraphicsLayer::paintGraphicsLayerContents and ASSERT()s that we never create or
1944         destroy a GraphicsLayer inside this function. Painting should never mutate the GraphicsLayer tree.
1945
1946         Test: compositing/video/video-with-invalid-source.html
1947
1948         * platform/graphics/GraphicsLayer.cpp:
1949         (WebCore::GraphicsLayer::GraphicsLayer):
1950         (WebCore::GraphicsLayer::~GraphicsLayer):
1951         (WebCore::GraphicsLayer::paintGraphicsLayerContents):
1952
1953 2011-09-27  Ojan Vafai  <ojan@chromium.org>
1954
1955         take padding/border on flexbox into account with direction:rtl
1956         https://bugs.webkit.org/show_bug.cgi?id=68846
1957
1958         Reviewed by David Hyatt.
1959
1960         Use the logicalWidth of the flexbox instead of it's availableLogicalWidth
1961         so that we include the flexbox's border and padding.
1962         
1963         Also, change all uses of availableLogicalWidth to contentLogicalWidth.
1964         The former takes multi-column into account. Multi-column flexboxes don't
1965         make any sense, so there's no point in calling availableLogicalWidth.
1966
1967         * rendering/RenderFlexibleBox.cpp:
1968         (WebCore::RenderFlexibleBox::flowAwareLogicalWidth):
1969         (WebCore::RenderFlexibleBox::flowAwareContentLogicalWidth):
1970         (WebCore::RenderFlexibleBox::computePreferredLogicalWidth):
1971         (WebCore::RenderFlexibleBox::runFreeSpaceAllocationAlgorithmInlineDirection):
1972         (WebCore::RenderFlexibleBox::layoutAndPlaceChildrenInlineDirection):
1973         * rendering/RenderFlexibleBox.h:
1974
1975 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1976
1977         Unreviewed, rolling out r96139.
1978         http://trac.webkit.org/changeset/96139
1979         https://bugs.webkit.org/show_bug.cgi?id=68933
1980
1981         Broke table-percent-height.html on Mac bots (Requested by
1982         mwenge2 on #webkit).
1983
1984         * rendering/RenderBox.cpp:
1985         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
1986         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
1987         * rendering/RenderBox.h:
1988
1989 2011-09-27  Tim Horton  <timothy_horton@apple.com>
1990
1991         REGRESSION(65665): Pattern size being clamped to SVG size can prevent transformed elements from being fully covered by userSpaceOnUse patterns
1992         https://bugs.webkit.org/show_bug.cgi?id=67700
1993         <rdar://problem/10125102>
1994
1995         Reviewed by Darin Adler.
1996
1997         Clamp all resources to the same size, 4096x4096 (arbitrarily chosen), instead of to the size
1998         of the <svg> element. This fixes the case where a transformed element displays part of a resource
1999         outside of the size of the <svg> element.
2000
2001         When drawing an oversized pattern into its tile image, scale the content down to fit. When drawing
2002         the tile image to the screen, scale it back up to fit the expected area. This will cause pixelation
2003         when patterns are over the 4k limit.
2004
2005         Tests: svg/custom/transformed-pattern-clamp-svg-root.svg, svg/custom/oversized-pattern-scale.svg
2006
2007         * rendering/svg/RenderSVGResourceClipper.cpp:
2008         (WebCore::RenderSVGResourceClipper::applyClippingToContext):
2009         * rendering/svg/RenderSVGResourceGradient.cpp:
2010         (WebCore::createMaskAndSwapContextForTextGradient):
2011         (WebCore::clipToTextMask):
2012         * rendering/svg/RenderSVGResourceMasker.cpp:
2013         (WebCore::RenderSVGResourceMasker::applyResource):
2014         * rendering/svg/RenderSVGResourcePattern.cpp:
2015         (WebCore::RenderSVGResourcePattern::applyResource):
2016         (WebCore::RenderSVGResourcePattern::createTileImage):
2017         * rendering/svg/RenderSVGResourcePattern.h:
2018         * rendering/svg/SVGImageBufferTools.cpp:
2019         (WebCore::SVGImageBufferTools::clampedAbsoluteTargetRect):
2020         * rendering/svg/SVGImageBufferTools.h:
2021
2022 2011-09-27  Dan Bernstein  <mitz@apple.com>
2023
2024         <rdar://problem/10098679> Assertion failure in RenderLayer::paintPaginatedChildLayer()
2025
2026         Reviewed by Simon Fraser.
2027
2028         Test: fast/dynamic/layer-no-longer-paginated.html
2029
2030         FrameView::layout() calls adjustViewSize() before calling RenderLayer::updateLayerPositions().
2031         The former may trigger painting with a layer tree that is not entirely up-to-date. Specifically,
2032         the isPaginated() state of a layer may be incorrect, leading to the assertion in this bug. Instead
2033         of asserting, return early and count on the upcoming updateLayerPositions() to repaint as needed.
2034
2035         * rendering/RenderLayer.cpp:
2036         (WebCore::RenderLayer::paintPaginatedChildLayer): Replaced the assertion with an early return.
2037
2038 2011-09-27  Ojan Vafai  <ojan@chromium.org>
2039
2040         offsetTop/offsetLeft return the wrong values for horizontal-bt/vertical-rl writing modes
2041         https://bugs.webkit.org/show_bug.cgi?id=68304
2042
2043         Reviewed by David Hyatt.
2044
2045         When grabbing the x/y values of the RenderBox, we need to take writing mode
2046         flipping into account.
2047
2048         Test: fast/dom/offset-position-writing-modes.html
2049
2050         * rendering/RenderBox.cpp:
2051         (WebCore::RenderBox::locationIncludingFlipping):
2052         * rendering/RenderBox.h:
2053         (WebCore::RenderBox::yFlippedForWritingMode):
2054         (WebCore::RenderBox::xFlippedForWritingMode):
2055         * rendering/RenderBoxModelObject.cpp:
2056         (WebCore::RenderBoxModelObject::offsetLeft):
2057         (WebCore::RenderBoxModelObject::offsetTop):
2058
2059 2011-09-27  Tim Horton  <timothy_horton@apple.com>
2060
2061         Rapidly refreshing a feMorphology[erode] with r=0 can sometimes cause display corruption
2062         https://bugs.webkit.org/show_bug.cgi?id=68816
2063         <rdar://problem/10186468>
2064
2065         Reviewed by Simon Fraser.
2066
2067         If a filter returns without writing into its result buffer, make sure to return an cleared buffer.
2068
2069         Test: svg/filters/feMorphology-zero-radius.svg
2070
2071         * platform/graphics/filters/FEMorphology.cpp:
2072         (WebCore::FEMorphology::apply):
2073         * platform/graphics/filters/FETurbulence.cpp:
2074         (WebCore::FETurbulence::apply):
2075
2076 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
2077
2078         CompositeEditCommand::prune should remove subtree at once
2079         https://bugs.webkit.org/show_bug.cgi?id=68866
2080
2081         Reviewed by Darin Adler.
2082
2083         Extracted the logic to find the highest ancestor to remove as highestNodeToRemoveInPruning from prune.
2084         This reduces the number of node removals from O(n) to O(1) where n is the depth of the tree.
2085
2086         * editing/CompositeEditCommand.cpp:
2087         (WebCore::hasARenderedDescendant): Takes excludedNode in addition to node. excludedNode is used to ignore
2088         the child node from which we climbed up the tree in highestNodeToRemoveInPruning.
2089         (WebCore::highestNodeToRemoveInPruning): Extracted from prune.
2090         (WebCore::CompositeEditCommand::prune):
2091         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
2092
2093 2011-09-27  David Hyatt  <hyatt@apple.com>
2094
2095         https://bugs.webkit.org/show_bug.cgi?id=68922
2096
2097         Paginated floats should not grow the height of a block when they don't end
2098         up being tied to a line. Floats encountered in skipLeadingWhitespace that
2099         paginate can't immediately grow the height of the block, since there may not
2100         end up being any actual line content. We only want to push the height of the
2101         block down if we have actual line content that we want to keep with the
2102         float.
2103         
2104         Make positionNewFloatOnLine check if the line is empty or not, and if it is,
2105         it just puts the desired pagination strut into LineInfo. If and when actual
2106         line content is encountered and setEmpty becomes false, we'll grow the block
2107         height then.
2108         
2109         Reviewed by Dan Bernstein.
2110
2111         Added fast/multicol/float-paginate-empty-lines.html and
2112         fast/regions/webkit-flow-double-pagination-float-push.html.
2113
2114         * rendering/RenderBlock.h:
2115         * rendering/RenderBlockLineLayout.cpp:
2116         (WebCore::LineWidth::LineWidth):
2117         (WebCore::LineWidth::fitsOnLine):
2118         (WebCore::LineWidth::currentWidth):
2119         (WebCore::LineWidth::uncommittedWidth):
2120         (WebCore::LineWidth::committedWidth):
2121         (WebCore::LineWidth::availableWidth):
2122         (WebCore::LineWidth::addUncommittedWidth):
2123         (WebCore::LineWidth::commit):
2124         (WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
2125         (WebCore::LineWidth::updateAvailableWidth):
2126         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
2127         (WebCore::LineWidth::applyOverhang):
2128         (WebCore::LineWidth::fitBelowFloats):
2129         (WebCore::LineInfo::LineInfo):
2130         (WebCore::LineInfo::floatPaginationStrut):
2131         (WebCore::LineInfo::setEmpty):
2132         (WebCore::LineInfo::setFloatPaginationStrut):
2133         (WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
2134         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
2135         (WebCore::RenderBlock::positionNewFloatOnLine):
2136
2137 2011-09-27  Dean Jackson  <dino@apple.com>
2138
2139         Add 'filter' value to RenderStyle
2140         https://bugs.webkit.org/show_bug.cgi?id=68471
2141
2142         Reviewed by Simon Fraser.
2143
2144         Add a filter property to RenderStyle when ENABLE(CSS_FILTERS)
2145         is turned on. Similar to -webkit-transform, -webkit-filter is a
2146         list of FilterOperations, each identifying what type of operation
2147         it is. This change simply adds the basic objects, it does not
2148         parse the property to generate the list.
2149
2150         * CMakeLists.txt:
2151         * GNUmakefile.list.am:
2152         * WebCore.gypi:
2153         * WebCore.pro:
2154         * WebCore.vcproj/WebCore.vcproj:
2155         * WebCore.xcodeproj/project.pbxproj:
2156         * platform/graphics/filters/FilterOperation.h: Added.
2157         (WebCore::FilterOperation::~FilterOperation):
2158         (WebCore::FilterOperation::operator!=):
2159         (WebCore::FilterOperation::getOperationType):
2160         (WebCore::FilterOperation::isSameType):
2161         (WebCore::FilterOperation::FilterOperation):
2162         (WebCore::ReferenceFilterOperation::create):
2163         (WebCore::ReferenceFilterOperation::reference):
2164         (WebCore::ReferenceFilterOperation::operator==):
2165         (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
2166         (WebCore::BasicColorMatrixFilterOperation::create):
2167         (WebCore::BasicColorMatrixFilterOperation::amount):
2168         (WebCore::BasicColorMatrixFilterOperation::operator==):
2169         (WebCore::BasicColorMatrixFilterOperation::BasicColorMatrixFilterOperation):
2170         (WebCore::BasicComponentTransferFilterOperation::create):
2171         (WebCore::BasicComponentTransferFilterOperation::amount):
2172         (WebCore::BasicComponentTransferFilterOperation::operator==):
2173         (WebCore::BasicComponentTransferFilterOperation::BasicComponentTransferFilterOperation):
2174         (WebCore::GammaFilterOperation::create):
2175         (WebCore::GammaFilterOperation::amplitude):
2176         (WebCore::GammaFilterOperation::exponent):
2177         (WebCore::GammaFilterOperation::offset):
2178         (WebCore::GammaFilterOperation::operator==):
2179         (WebCore::GammaFilterOperation::GammaFilterOperation):
2180         (WebCore::BlurFilterOperation::create):
2181         (WebCore::BlurFilterOperation::stdDeviationX):
2182         (WebCore::BlurFilterOperation::stdDeviationY):
2183         (WebCore::BlurFilterOperation::operator==):
2184         (WebCore::BlurFilterOperation::BlurFilterOperation):
2185         (WebCore::SharpenFilterOperation::create):
2186         (WebCore::SharpenFilterOperation::radius):
2187         (WebCore::SharpenFilterOperation::threshold):
2188         (WebCore::SharpenFilterOperation::amount):
2189         (WebCore::SharpenFilterOperation::operator==):
2190         (WebCore::SharpenFilterOperation::SharpenFilterOperation):
2191         (WebCore::DropShadowFilterOperation::create):
2192         (WebCore::DropShadowFilterOperation::shadow):
2193         (WebCore::DropShadowFilterOperation::operator==):
2194         (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
2195         * platform/graphics/filters/FilterOperations.cpp: Added.
2196         (WebCore::FilterOperations::FilterOperations):
2197         (WebCore::FilterOperations::operator==):
2198         * platform/graphics/filters/FilterOperations.h: Added.
2199         (WebCore::FilterOperations::operator!=):
2200         (WebCore::FilterOperations::clear):
2201         (WebCore::FilterOperations::operations):
2202         (WebCore::FilterOperations::size):
2203         (WebCore::FilterOperations::at):
2204         * rendering/style/RenderStyle.cpp:
2205         (WebCore::RenderStyle::RenderStyle):
2206         * rendering/style/RenderStyle.h:
2207         (WebCore::InheritedFlags::filter):
2208         (WebCore::InheritedFlags::hasFilter):
2209         (WebCore::InheritedFlags::setFilter):
2210         (WebCore::InheritedFlags::initialFilter):
2211         * rendering/style/StyleAllInOne.cpp: Added include of new StyleFilterData.
2212         * rendering/style/StyleFilterData.cpp: Added.
2213         (WebCore::StyleFilterData::StyleFilterData):
2214         (WebCore::StyleFilterData::operator==):
2215         * rendering/style/StyleFilterData.h: Added.
2216         (WebCore::StyleFilterData::create):
2217         (WebCore::StyleFilterData::copy):
2218         (WebCore::StyleFilterData::operator!=):
2219         * rendering/style/StyleRareNonInheritedData.cpp:
2220         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2221         (WebCore::StyleRareNonInheritedData::operator==):
2222         * rendering/style/StyleRareNonInheritedData.h: New filter DataRef.
2223
2224 2011-09-27  James Robinson  <jamesr@chromium.org>
2225
2226         [chromium] LayerRenderChromium asserts about leaking textures.
2227         https://bugs.webkit.org/show_bug.cgi?id=68190
2228
2229         Reviewed by Kenneth Russell.
2230
2231         This introduces an interface TextureAllocator that the TextureManager uses to allocate/deallocate textures.
2232         This means that TextureManager does not need to depend directly on GraphicsContext3D, other than for the format
2233         enum type, making it more testable.  It also allows us to track the allocations by subclassing TextureAllocator
2234         to make sure we aren't leaking any textures.
2235
2236         * WebCore.gypi:
2237         * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
2238         (WebCore::Canvas2DLayerChromium::updateCompositorResources):
2239         * platform/graphics/chromium/Canvas2DLayerChromium.h:
2240         * platform/graphics/chromium/ImageLayerChromium.cpp:
2241         (WebCore::ImageLayerTextureUpdater::updateTextureRect):
2242         * platform/graphics/chromium/LayerChromium.h:
2243         (WebCore::LayerChromium::updateCompositorResources):
2244         * platform/graphics/chromium/LayerRendererChromium.cpp:
2245         (WebCore::LayerRendererChromium::LayerRendererChromium):
2246         (WebCore::LayerRendererChromium::releaseRenderSurfaceTextures):
2247         (WebCore::LayerRendererChromium::drawLayers):
2248         (WebCore::LayerRendererChromium::useRenderSurface):
2249         (WebCore::LayerRendererChromium::initializeSharedObjects):
2250         (WebCore::LayerRendererChromium::cleanupSharedObjects):
2251         * platform/graphics/chromium/LayerRendererChromium.h:
2252         (WebCore::LayerRendererChromium::renderSurfaceTextureAllocator):
2253         (WebCore::LayerRendererChromium::contentsTextureAllocator):
2254         * platform/graphics/chromium/LayerTextureUpdater.h:
2255         * platform/graphics/chromium/LayerTextureUpdaterCanvas.cpp:
2256         (WebCore::LayerTextureUpdaterBitmap::updateTextureRect):
2257         (WebCore::LayerTextureUpdaterSkPicture::updateTextureRect):
2258         * platform/graphics/chromium/LayerTextureUpdaterCanvas.h:
2259         * platform/graphics/chromium/ManagedTexture.cpp:
2260         (WebCore::ManagedTexture::bindTexture):
2261         (WebCore::ManagedTexture::framebufferTexture2D):
2262         * platform/graphics/chromium/ManagedTexture.h:
2263         * platform/graphics/chromium/TextureManager.cpp:
2264         (WebCore::TextureManager::memoryUseBytes):
2265         (WebCore::TextureManager::deleteEvictedTextures):
2266         (WebCore::TextureManager::evictAndDeleteAllTextures):
2267         (WebCore::TextureManager::removeTexture):
2268         (WebCore::TextureManager::allocateTexture):
2269         (WebCore::TextureManager::requestTexture):
2270         * platform/graphics/chromium/TextureManager.h:
2271         (WebCore::TextureAllocator::~TextureAllocator):
2272         * platform/graphics/chromium/TiledLayerChromium.cpp:
2273         (WebCore::TiledLayerChromium::updateCompositorResources):
2274         * platform/graphics/chromium/TiledLayerChromium.h:
2275         * platform/graphics/chromium/TrackingTextureAllocator.cpp: Added.
2276         (WebCore::TrackingTextureAllocator::TrackingTextureAllocator):
2277         (WebCore::TrackingTextureAllocator::~TrackingTextureAllocator):
2278         (WebCore::TrackingTextureAllocator::createTexture):
2279         (WebCore::TrackingTextureAllocator::deleteTexture):
2280         * platform/graphics/chromium/TrackingTextureAllocator.h: Copied from Source/WebCore/platform/graphics/chromium/ManagedTexture.h.
2281         (WebCore::TrackingTextureAllocator::create):
2282         (WebCore::TrackingTextureAllocator::currentMemoryUseBytes):
2283         * platform/graphics/chromium/VideoLayerChromium.cpp:
2284         (WebCore::VideoLayerChromium::updateCompositorResources):
2285         (WebCore::VideoLayerChromium::updateTexture):
2286         * platform/graphics/chromium/VideoLayerChromium.h:
2287         * platform/graphics/chromium/WebGLLayerChromium.cpp:
2288         (WebCore::WebGLLayerChromium::updateCompositorResources):
2289         * platform/graphics/chromium/WebGLLayerChromium.h:
2290         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2291         (WebCore::CCHeadsUpDisplay::draw):
2292         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2293         (WebCore::CCLayerTreeHost::~CCLayerTreeHost):
2294         (WebCore::CCLayerTreeHost::deleteContentsTexturesOnCCThread):
2295         (WebCore::CCLayerTreeHost::commitToOnCCThread):
2296         (WebCore::CCLayerTreeHost::didRecreateGraphicsContext):
2297         (WebCore::CCLayerTreeHost::updateCompositorResources):
2298         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2299         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2300         (WebCore::CCLayerTreeHostImpl::contentsTextureAllocator):
2301         (WebCore::CCLayerTreeHostImpl::initializeLayerRenderer):
2302         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
2303         * platform/graphics/chromium/cc/CCRenderSurface.cpp:
2304         (WebCore::CCRenderSurface::drawSurface):
2305         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2306         (WebCore::CCSingleThreadProxy::setNeedsCommit):
2307         (WebCore::CCSingleThreadProxy::stop):
2308         (WebCore::CCSingleThreadProxy::recreateContextIfNeeded):
2309         (WebCore::CCSingleThreadProxy::commitIfNeeded):
2310         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2311         (WebCore::CCThreadProxy::commitOnCCThread):
2312         (WebCore::CCThreadProxy::layerTreeHostClosedOnCCThread):
2313
2314 2011-06-28  Robert Hogan  <robert@webkit.org>
2315
2316         Reviewed by David Hyatt.
2317
2318         Replaced elements squeezed when width is specified as percentage inside a table with Auto layout
2319         https://bugs.webkit.org/show_bug.cgi?id=29447
2320
2321         If inserting a 'replaced' element (e.g. image, plugin) in a table cell that is not descendant from
2322         a block with fixed layout then do not squeeze the element, let it use its intrinsic width and height.
2323
2324         Test: fast/replaced/table-percent-width.html
2325
2326         * rendering/RenderBox.cpp:
2327         (WebCore::avoidSqueezingWidth):
2328         (WebCore::avoidSqueezingHeight):
2329         (WebCore::RenderBox::containingBlockReplacedLogicalWidthForContent):
2330         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
2331         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
2332         * rendering/RenderBox.h:
2333
2334 2011-09-27  Simon Fraser  <simon.fraser@apple.com>
2335
2336         https://bugs.webkit.org/show_bug.cgi?id=67858
2337
2338         Roll r96070 back in now that the crash has been fixed in r96130.
2339
2340         Reviewed by Darin Adler.
2341         
2342         When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
2343         the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
2344         
2345         Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
2346         on scrollbar creation appears to happen via updating the scrollbar style.
2347
2348         Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
2349         stale scrollbars when run manually, even though the green squares are missing from the
2350         pixel result (bug 67878).
2351
2352         * page/FrameView.cpp:
2353         (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
2354         * platform/ScrollView.cpp:
2355         (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
2356         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
2357         (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
2358         compute the scroll corner rect while we still have scrollbars, and then invalidate it
2359         explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
2360         rect.)
2361         * platform/ScrollableArea.cpp:
2362         (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
2363         compute it in the case where the scrollbars are going away.
2364         * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
2365         invalidateScrollbar().
2366         * rendering/RenderLayerCompositor.cpp:
2367         (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
2368         * rendering/RenderScrollbarPart.cpp: Ditto.
2369         (WebCore::RenderScrollbarPart::imageChanged): Ditto.
2370
2371 2011-09-27  Mihai Parparita  <mihaip@chromium.org>
2372
2373         Fix Chromium Mac build after r96130.
2374
2375         * page/FrameView.cpp:
2376         (WebCore::FrameView::layerForOverhangAreas):
2377
2378 2011-09-27  Kaustubh Atrawalkar  <kaustubh@motorola.com>
2379
2380         Autofocus on readonly inputs does not focus the element.
2381         https://bugs.webkit.org/show_bug.cgi?id=24092
2382
2383         Reviewed by Ryosuke Niwa.
2384
2385         Readonly input elements should be autofocusable. Removed the check.
2386
2387         Tests: fast/forms/autofocus-readonly-attribute.html
2388
2389         * html/HTMLFormControlElement.cpp:
2390         (WebCore::shouldAutofocus):
2391
2392 2011-09-27  Simon Fraser  <simon.fraser@apple.com>
2393
2394         Clean up how FrameView accesses the RenderView
2395         https://bugs.webkit.org/show_bug.cgi?id=68914
2396
2397         Reviewed by Sam Weinig.
2398
2399         Clean up how FrameView accesses the content renderer of its
2400         frame. Previously, this was done in several different ways,
2401         only some of which did null-checking.
2402         
2403         Use an inline method to avoid having to expose Frame
2404         in the header.
2405         
2406         Standardize the terminology to use 'root' for this RenderView.
2407
2408         * page/FrameView.cpp:
2409         (WebCore::rootRenderer):
2410         (WebCore::FrameView::setFrameRect):
2411         (WebCore::FrameView::adjustViewSize):
2412         (WebCore::FrameView::updateCompositingLayers):
2413         (WebCore::FrameView::clearBackingStores):
2414         (WebCore::FrameView::restoreBackingStores):
2415         (WebCore::FrameView::layerForHorizontalScrollbar):
2416         (WebCore::FrameView::layerForVerticalScrollbar):
2417         (WebCore::FrameView::layerForScrollCorner):
2418         (WebCore::FrameView::layerForOverhangAreas):
2419         (WebCore::FrameView::syncCompositingStateForThisFrame):
2420         (WebCore::FrameView::hasCompositedContent):
2421         (WebCore::FrameView::enterCompositingMode):
2422         (WebCore::FrameView::isSoftwareRenderable):
2423         (WebCore::FrameView::didMoveOnscreen):
2424         (WebCore::FrameView::willMoveOffscreen):
2425         (WebCore::FrameView::layout):
2426         (WebCore::FrameView::embeddedContentBox):
2427         (WebCore::FrameView::contentsInCompositedLayer):
2428         (WebCore::FrameView::scrollContentsFastPath):
2429         (WebCore::FrameView::scrollContentsSlowPath):
2430         (WebCore::FrameView::maintainScrollPositionAtAnchor):
2431         (WebCore::FrameView::scrollPositionChanged):
2432         (WebCore::FrameView::repaintFixedElementsAfterScrolling):
2433         (WebCore::FrameView::visibleContentsResized):
2434         (WebCore::FrameView::scheduleRelayoutOfSubtree):
2435         (WebCore::FrameView::needsLayout):
2436         (WebCore::FrameView::setNeedsLayout):
2437         (WebCore::FrameView::performPostLayoutTasks):
2438         (WebCore::FrameView::updateControlTints):
2439         (WebCore::FrameView::paintContents):
2440         (WebCore::FrameView::forceLayoutForPagination):
2441         (WebCore::FrameView::adjustPageHeightDeprecated):
2442         (WebCore::FrameView::isVerticalDocument):
2443         (WebCore::FrameView::isFlippedDocument):
2444
2445 2011-09-27  Dominic Mazzoni  <dmazzoni@google.com>
2446
2447         AXObjectCache cleared unnecessarily when non-top Document is detached.
2448         https://bugs.webkit.org/show_bug.cgi?id=68636
2449
2450         Reviewed by Chris Fleizach.
2451
2452         Test: accessibility/deleting-iframe-destroys-axcache.html
2453
2454         * dom/Document.cpp:
2455         (WebCore::Document::attach):
2456         (WebCore::Document::detach):
2457
2458 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2459
2460         Unreviewed, rolling out r96108, r96111, r96113, and r96116.
2461         http://trac.webkit.org/changeset/96108
2462         http://trac.webkit.org/changeset/96111
2463         http://trac.webkit.org/changeset/96113
2464         http://trac.webkit.org/changeset/96116
2465         https://bugs.webkit.org/show_bug.cgi?id=68913
2466
2467         Wait for working Qt5 (Requested by ossy on #webkit).
2468
2469         * WebCore.pri:
2470         * platform/graphics/qt/GraphicsLayerQt.cpp:
2471
2472 2011-09-27  Csaba Osztrogonác  <ossy@webkit.org>
2473
2474         Fix ENABLE(SQL_DATABASE)=0 build after r95919
2475         https://bugs.webkit.org/show_bug.cgi?id=68902
2476
2477         r95919 enabled OFFLINE_WEB_APPLICATIONS by default and
2478         it needs SQLite stuff even if ENABLE_SQL_DATABASE=0.
2479
2480         Reviewed by Adam Barth.
2481
2482         * platform/sql/SQLiteAuthorizer.cpp:
2483         * platform/sql/SQLiteDatabase.cpp:
2484         * platform/sql/SQLiteFileSystem.cpp:
2485         * platform/sql/SQLiteStatement.cpp:
2486         * platform/sql/SQLiteTransaction.cpp:
2487         * storage/DatabaseAuthorizer.cpp:
2488
2489 2011-09-27  Julien Chaffraix  <jchaffraix@webkit.org>
2490
2491         Crash because CSSPrimitiveValue::computeLengthDouble assumes fontMetrics are available
2492         https://bugs.webkit.org/show_bug.cgi?id=66291
2493
2494         Reviewed by Darin Adler.
2495
2496         Test: fast/canvas/crash-set-font.html
2497
2498         This is Yet Another Missing updateFont (similar to bug 57756 and likely others). Here the issue is that
2499         applying one of the font properties could mutate the parent style's font if m_parentStyle == m_style.
2500         We would then query the newly created font when applying CSSPropertyFontSize, which has no font fallback
2501         list as Font::update was never called.
2502
2503         The right fix would be to refactor of how we handle fonts to avoid such manual updates (see bug 62390).
2504         Until this happens, it is better not to crash.
2505
2506         * css/CSSStyleSelector.cpp:
2507         (WebCore::CSSStyleSelector::applyProperty): Added updateFont() here as the fonts could have been
2508         mutated by the previous property change. Also added a comment explaining why it is safe to do it
2509         this way.
2510
2511 2011-09-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
2512
2513         [Texmap] Code cleanup: remove unused boundingRect/visibleRect calculations
2514         https://bugs.webkit.org/show_bug.cgi?id=68897
2515
2516         Reviewed by Andreas Kling.
2517
2518         No new functionality so no new tests.
2519
2520         * platform/graphics/texmap/TextureMapperNode.cpp:
2521         (WebCore::TextureMapperNode::computeAllTransforms):
2522         (WebCore::TextureMapperNode::computeTiles):
2523         (WebCore::TextureMapperNode::syncCompositingState):
2524         * platform/graphics/texmap/TextureMapperNode.h:
2525
2526 2011-09-27  No'am Rosenthal  <noam.rosenthal@nokia.com>
2527
2528         [Texmap][Qt] Refactor texture-upload to allow direct chunk update
2529         https://bugs.webkit.org/show_bug.cgi?id=68808
2530
2531         Add a function to BitmapTexture for direct pixel updates.
2532         Modify BitmapTextureGL::endPaint to use that function. Since the BGRA
2533         to RGBA swizzling is done inside that function, there's no need for the 
2534         RGBA32PremultipliedBuffer class to contain such function. Also,
2535         RGBA32PremultipliedBuffer was renamed to BGRA32PremultipliedBuffer, correcting
2536         an old mistake.
2537
2538         Reviewed by Andreas Kling.
2539
2540         No new tests. Existing tests in LayoutTests/compositing test this.
2541
2542         * platform/graphics/opengl/TextureMapperGL.cpp:
2543         (WebCore::BitmapTextureGL::beginPaint):
2544         (WebCore::BitmapTextureGL::endPaint):
2545         (WebCore::swizzleBGRAToRGBA):
2546         (WebCore::BitmapTextureGL::updateContents):
2547         * platform/graphics/opengl/TextureMapperGL.h:
2548         (WebCore::BGRA32PremultimpliedBuffer::~BGRA32PremultimpliedBuffer):
2549         * platform/graphics/qt/TextureMapperQt.cpp:
2550         (WebCore::BitmapTextureQt::updateContents):
2551         (WebCore::BGRA32PremultimpliedBufferQt::data):
2552         (WebCore::BGRA32PremultimpliedBuffer::create):
2553         * platform/graphics/qt/TextureMapperQt.h:
2554         * platform/graphics/texmap/TextureMapper.h:
2555
2556 2011-09-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2557
2558         [Qt] Fix build against Qt5 after refactor of widgets out of QtGUi
2559
2560         QWidget and friends now live in the QtWidgets library. We update
2561         includes in implementation files and private headers to us the
2562         non-module-prefixed path, and leave the lookup for the include
2563         path. For public headers we have to ifdef the includes as the
2564         user might now have the modules we need in his QT config.
2565
2566         Finally, QSGCanvas is no longer a QWidget but a QWindow, so we
2567         have to update our code and use windowHandle() for setting the
2568         parent relationships.
2569
2570         https://bugs.webkit.org/show_bug.cgi?id=68687
2571
2572         Reviewed by Andreas Kling.
2573
2574         * WebCore.pri:
2575         * platform/graphics/qt/GraphicsLayerQt.cpp:
2576
2577 2011-09-27  Pavel Feldman  <pfeldman@google.com>
2578
2579         Web Inspector: split DOM.attributesUpdated into attributeModified and attributeRemoved.
2580         Send attribute name and value within the event.
2581         https://bugs.webkit.org/show_bug.cgi?id=68613
2582
2583         Reviewed by Yury Semikhatsky.
2584
2585         * dom/Element.cpp:
2586         (WebCore::Element::setAttribute):
2587         (WebCore::Element::removeAttribute):
2588         * inspector/Inspector.draft-01.json:
2589         * inspector/Inspector.json:
2590         * inspector/InspectorDOMAgent.cpp:
2591         (WebCore::InspectorDOMAgent::didModifyDOMAttr):
2592         (WebCore::InspectorDOMAgent::didRemoveDOMAttr):
2593         * inspector/InspectorDOMAgent.h:
2594         * inspector/InspectorInstrumentation.cpp:
2595         (WebCore::InspectorInstrumentation::didModifyDOMAttrImpl):
2596         (WebCore::InspectorInstrumentation::didRemoveDOMAttrImpl):
2597         * inspector/InspectorInstrumentation.h:
2598         (WebCore::InspectorInstrumentation::didModifyDOMAttr):
2599         (WebCore::InspectorInstrumentation::didRemoveDOMAttr):
2600         * inspector/front-end/DOMAgent.js:
2601         (WebInspector.DOMNode.prototype._addAttribute):
2602         (WebInspector.DOMNode.prototype._setAttribute):
2603         (WebInspector.DOMNode.prototype._removeAttribute):
2604         (WebInspector.DOMAgent.prototype._attributeModified):
2605         (WebInspector.DOMAgent.prototype._attributeRemoved):
2606         (WebInspector.DOMAgent.prototype._inlineStyleInvalidated):
2607         (WebInspector.DOMAgent.prototype._loadNodeAttributes):
2608         (WebInspector.DOMDispatcher.prototype.attributeModified):
2609         (WebInspector.DOMDispatcher.prototype.attributeRemoved):
2610         * inspector/front-end/ElementsPanel.js:
2611         (WebInspector.ElementsPanel):
2612         (WebInspector.ElementsPanel.prototype._attributesUpdated):
2613         * inspector/front-end/MetricsSidebarPane.js:
2614         (WebInspector.MetricsSidebarPane):
2615         (WebInspector.MetricsSidebarPane.prototype._attributesUpdated):
2616         * inspector/front-end/StylesSidebarPane.js:
2617         (WebInspector.StylesSidebarPane):
2618         (WebInspector.StylesSidebarPane.prototype._attributesModified):
2619         (WebInspector.StylesSidebarPane.prototype._attributesRemoved):
2620         (WebInspector.StylesSidebarPane.prototype._styleInvalidated):
2621         (WebInspector.StylePropertyTreeElement.prototype.event):
2622         (WebInspector.StylePropertyTreeElement.prototype):
2623         * inspector/validate-protocol-compatibility:
2624
2625 2011-09-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2626
2627         Unreviewed, rolling out r96070 and r96075.
2628         http://trac.webkit.org/changeset/96070
2629         http://trac.webkit.org/changeset/96075
2630         https://bugs.webkit.org/show_bug.cgi?id=68893
2631
2632         WK2 tests started crashing after r96070 for SL and Qt
2633         (Requested by torarne on #webkit).
2634
2635         * page/FrameView.cpp:
2636         (WebCore::FrameView::updateScrollCorner):
2637         * platform/ScrollView.cpp:
2638         (WebCore::ScrollView::setHasHorizontalScrollbar):
2639         (WebCore::ScrollView::setHasVerticalScrollbar):
2640         (WebCore::ScrollView::updateScrollbars):
2641         * platform/ScrollableArea.cpp:
2642         (WebCore::ScrollableArea::invalidateScrollCorner):
2643         * platform/ScrollableArea.h:
2644         * rendering/RenderLayerCompositor.cpp:
2645         (WebCore::RenderLayerCompositor::destroyRootLayer):
2646         * rendering/RenderScrollbarPart.cpp:
2647         (WebCore::RenderScrollbarPart::imageChanged):
2648
2649 2011-09-27  Andrey Kosyakov  <caseq@chromium.org>
2650
2651         Web Inspector: JS exception upon clicking on "Word Wrap" checkbox in Settings screen
2652         https://bugs.webkit.org/show_bug.cgi?id=68888
2653
2654         Reviewed by Pavel Feldman.
2655
2656         * inspector/front-end/ElementsPanel.js:
2657         (WebInspector.ElementsPanel.prototype._domWordWrapSettingChanged):
2658
2659 2011-09-21  Pavel Podivilov  <podivilov@chromium.org>
2660
2661         Web Inspector: migrate RawSourceCode clients to SourceMapping class.
2662         https://bugs.webkit.org/show_bug.cgi?id=68524
2663
2664         Clients should use uiSourceCode(), rawLocationToUILocation(), uiLocationToRawLocation() methods of SourceMapping class.
2665         Initially, RawSourceCode may not have associated SourceMapping, so it is natural to extract this methods and associated state to a separate class.
2666
2667         Reviewed by Yury Semikhatsky.
2668
2669         * inspector/front-end/BreakpointManager.js:
2670         (WebInspector.BreakpointManager.prototype._materializeBreakpoint):
2671         (WebInspector.BreakpointManager.prototype._breakpointDebuggerLocationChanged):
2672         * inspector/front-end/DebuggerPresentationModel.js:
2673         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation.updateAnchor):
2674         (WebInspector.DebuggerPresentationModel.prototype.linkifyLocation):
2675         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2676         (WebInspector.DebuggerPresentationModel.prototype._updateSourceMapping):
2677         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
2678         (WebInspector.DebuggerPresentationModel.prototype._restoreConsoleMessages):
2679         (WebInspector.DebuggerPresentationModel.prototype._consoleMessageAdded):
2680         (WebInspector.DebuggerPresentationModel.prototype._createPresentationMessage):
2681         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
2682         (WebInspector.PresentationCallFrame.prototype.get url):
2683         (WebInspector.PresentationCallFrame.prototype.sourceLine.sourceMappingUpdated):
2684         (WebInspector.PresentationCallFrame.prototype.sourceLine):
2685         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.canSetContent):
2686         (WebInspector.DebuggerPresentationModelResourceBinding.prototype.setContent):
2687         * inspector/front-end/SourceFile.js:
2688         (WebInspector.RawSourceCode.prototype.get sourceMapping):
2689
2690 2011-09-27  Vineet Chaudhary  <vineet.chaudhary@motorola.com>
2691
2692         wrap attribute of textarea element cannot be accessed by JavaScript.
2693         https://bugs.webkit.org/show_bug.cgi?id=68592
2694
2695         Reviewed by Kent Tamura.
2696
2697         Added JS interface for wrap attribute to HTMLTextAreaElement.idl.
2698
2699         Test: fast/forms/textarea-wrap-attribute.html
2700
2701         * html/HTMLTextAreaElement.idl:
2702
2703 2011-09-27  Xan Lopez  <xlopez@igalia.com>
2704
2705         [GTK] Add compatibility methods for DOM bindings
2706         https://bugs.webkit.org/show_bug.cgi?id=68884
2707
2708         Reviewed by Philippe Normand.
2709
2710         Add compatibility methods for our DOM bindings.
2711
2712         * bindings/gobject/WebKitDOMCustom.cpp:
2713         (webkit_dom_blob_slice): alias to the new method name.
2714         (webkit_dom_html_form_element_dispatch_form_change): this was
2715         removed from WebCore, so just print a warning about it.
2716         (webkit_dom_html_form_element_dispatch_form_input): ditto.
2717         * bindings/gobject/WebKitDOMCustom.h:
2718
2719 2011-09-27  Ryosuke Niwa  <rniwa@webkit.org>
2720
2721         Encapsulate m_firstNodeInserted and m_lastLeafInserted in node insertion logic
2722         https://bugs.webkit.org/show_bug.cgi?id=68875
2723
2724         Reviewed by Kent Tamura.
2725
2726         Added InsertedNode class inside ReplaceSelection to encapsulate m_firstNodeInserted and m_lastLeafInserted.
2727         Deployed it in removeRedundantStylesAndKeepStyleSpanInline, doApply, and insertAsListItems of ReplaceSelectionCommand.
2728
2729         * editing/DeleteSelectionCommand.cpp:
2730         (WebCore::DeleteSelectionCommand::removeNode):
2731         (WebCore::DeleteSelectionCommand::handleGeneralDelete):
2732         * editing/ReplaceSelectionCommand.cpp:
2733         (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
2734         (WebCore::ReplaceSelectionCommand::doApply):
2735         (WebCore::ReplaceSelectionCommand::insertAsListItems):
2736         * editing/ReplaceSelectionCommand.h:
2737         (WebCore::ReplaceSelectionCommand::InsertedNodes::respondToNodeInsertion):
2738         (WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNode):
2739         (WebCore::ReplaceSelectionCommand::InsertedNodes::firstNodeInserted):
2740         (WebCore::ReplaceSelectionCommand::InsertedNodes::lastLeafInserted):
2741         (WebCore::ReplaceSelectionCommand::InsertedNodes::pastLastLeaf):
2742         * editing/htmlediting.cpp:
2743         (WebCore::updatePositionForNodeRemoval): Moved from DeleteSelectionCommand.cpp.
2744         * editing/htmlediting.h:
2745
2746 2011-09-27  Arun Patole  <bmf834@motorola.com>
2747
2748         Audio element doesn't emit the 'playing' event every time it starts playing, after it has finished playing.
2749         https://bugs.webkit.org/show_bug.cgi?id=60972
2750
2751         Reviewed by Philippe Normand.
2752
2753         The paused attribute should be set to true and the media element should emit a 'paused' at the end of playback.
2754         WHATWG revision r6562: http://html5.org/tools/web-apps-tracker?from=6561&to=6562
2755
2756         Test: media/media-element-play-after-eos.html
2757
2758         * html/HTMLMediaElement.cpp:
2759         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): set m_paused to true and schedule 'pause' event when playback ended.
2760
2761 2011-09-27  Rakesh KN  <rakesh.kn@motorola.com>
2762
2763         <input> with autofocus doesn't lose focus when it has a certain onblur listener
2764         https://bugs.webkit.org/show_bug.cgi?id=68513
2765
2766         Reviewed by Kent Tamura.
2767
2768         Test: fast/forms/autofocus-focus-only-once.html
2769
2770         These changes make sure that an element is focused only once when autofocus attribute is used.
2771
2772         * html/HTMLFormControlElement.cpp:
2773         (WebCore::HTMLFormControlElement::HTMLFormControlElement):
2774         (WebCore::shouldAutofocus):
2775         (WebCore::HTMLFormControlElement::attach):
2776         * html/HTMLFormControlElement.h:
2777         (WebCore::HTMLFormControlElement::hasAutofocused):
2778         (WebCore::HTMLFormControlElement::setAutofocused):
2779
2780 2011-09-26  Kentaro Hara  <haraken@chromium.org>
2781
2782         Implement PopStateEvent.state with SerializedScriptValue and ScriptValue
2783         https://bugs.webkit.org/show_bug.cgi?id=68345
2784
2785         Reviewed by Adam Barth.
2786
2787         Previously, the following test cases fail or crash:
2788
2789         - shouldBe("new PopStateEvent('eventType', { state: object1 }).state", "object1") -> FAIL
2790         - new PopStateEvent('eventType', { state: document }).state -> CRASH in DRT
2791
2792         This is because PopStateEvent.state is implemented not as ScriptValue but as SerializedScriptValue.
2793         However, we cannot simply change the type of PopStateEvent.state to ScriptValue,
2794         since PopStateEvent can be constructed in the context that does not know ScriptValue.
2795         For example, Document.cpp calls PopStateEvent::create() with SerializedScriptValue
2796         popped from HistoryItem, but we cannot deserialize the SerializedScriptValue into
2797         the corresponding ScriptValue here because the deserialization requires ExecState.
2798         In other words, although we want to store PopStateEvent.state by ScriptValue internally,
2799         PopStateEvent still needs to provide an API to construct it with SerializedScriptValue.
2800         With these observations, this patch makes the following changes:
2801
2802         - If PopStateEvent is constructed with ScriptValue, it is stored as ScriptValue internally.
2803         When PopStateEvent.state is called, the ScriptValue is returned.
2804         - If PopStateEvent is constructed with SerializedScriptValue, it is stored as
2805         SerializedScriptValue internally (since we cannot deserialize it into ScriptValue
2806         at this point). When PopStateEvent.state is called, the SerializedScriptValue is
2807         deserialized into the corresponding ScriptValue, and the ScriptValue is returned.
2808
2809         Tests: fast/events/constructors/pop-state-event-constructor.html
2810                fast/events/fire-popstate-event.html
2811
2812         * GNUmakefile.list.am: Added JSPopStateEventCustom.cpp.
2813         * UseJSC.cmake: Ditto.
2814         * WebCore.gypi: Ditto.
2815         * WebCore.pro: Ditto.
2816         * WebCore.xcodeproj/project.pbxproj: Ditto.
2817         * bindings/js/JSBindingsAllInOne.cpp: Ditto.
2818         * bindings/js/JSPopStateEventCustom.cpp:
2819         (WebCore::JSPopStateEvent::state): Custom getter for PopStateEvent.state.
2820         * bindings/v8/custom/V8PopStateEventCustom.cpp:
2821         (WebCore::V8PopStateEvent::stateAccessorGetter): Custom getter for PopStateEvent.state.
2822         * dom/PopStateEvent.cpp:
2823         (WebCore::PopStateEventInit::PopStateEventInit): Added initialization code for PopStateEvent.m_state.
2824         (WebCore::PopStateEvent::PopStateEvent): Ditto.
2825         (WebCore::PopStateEvent::create): Ditto.
2826         (WebCore::PopStateEvent::initPopStateEvent): Ditto.
2827         * dom/PopStateEvent.h:
2828         (WebCore::PopStateEvent::serializedState): Getter.
2829         (WebCore::PopStateEvent::state): Getter.
2830         * dom/PopStateEvent.idl: Change the type of 'stateArg' and 'state' to DOMObject. Added [CustomGetter] to 'state'.
2831
2832 2011-09-09  Simon Fraser  <simon.fraser@apple.com>
2833
2834         Pixel result shows that compositing/iframes/repaint-after-losing-scrollbars.html is failing
2835         https://bugs.webkit.org/show_bug.cgi?id=67858
2836
2837         Reviewed by Darin Adler.
2838         
2839         When non-overlay scrollbars are hidden on a composited iframe, nothing invalidated
2840         the scrollbar areas or the scroll corner, so the scrollbars appear to remain.
2841         
2842         Fix by invalidating the scrollbars and scroll corner when they are removed. Invalidation
2843         on scrollbar creation appears to happen via updating the scrollbar style.
2844
2845         Tested by compositing/iframes/repaint-after-losing-scrollbars.html which no longer shows
2846         stale scrollbars when run manually, even though the green squares are missing from the
2847         pixel result (bug 67878).
2848
2849         * page/FrameView.cpp:
2850         (WebCore::FrameView::updateScrollCorner): Pass the corner rect into invalidateScrollCorner().
2851         * platform/ScrollView.cpp:
2852         (WebCore::ScrollView::setHasHorizontalScrollbar): Invalidate the scrollbar area if hiding it.
2853         (WebCore::ScrollView::setHasVerticalScrollbar): Ditto.
2854         (WebCore::ScrollView::updateScrollbars): In the case where both scrollbars are going away,
2855         compute the scroll corner rect while we still have scrollbars, and then invalidate it
2856         explicitly. (updateScrollCorner() doesn't, because it doesn't have access to the old corner
2857         rect.)
2858         * platform/ScrollableArea.cpp:
2859         (WebCore::ScrollableArea::invalidateScrollCorner): Pass the rect in, because we can't
2860         compute it in the case where the scrollbars are going away.
2861         * platform/ScrollableArea.h: Pass in a rect to invalidateScrollCorner(), which matches
2862         invalidateScrollbar().
2863         * rendering/RenderLayerCompositor.cpp:
2864         (WebCore::RenderLayerCompositor::destroyRootLayer): Pass the corner rect into invalidateScrollCorner().
2865         * rendering/RenderScrollbarPart.cpp: Ditto.
2866         (WebCore::RenderScrollbarPart::imageChanged): Ditto.
2867
2868 2011-09-09  Simon Fraser  <simon.fraser@apple.com>
2869
2870         Translucent scrollbars on composited layers render incorrectly
2871         https://bugs.webkit.org/show_bug.cgi?id=58515
2872
2873         Reviewed by Sam Weinig.
2874         
2875         Scrollbars in composited elements were getting drawn twice,
2876         because r41203 moved the call to paintOverflowControls() out of
2877         RenderLayer::paintLayer(), but forgot to change RenderLayerBacking::paintIntoLayer().
2878
2879         Test: compositing/scrollbar-painting.html
2880
2881         * rendering/RenderLayerBacking.cpp:
2882         (WebCore::RenderLayerBacking::paintIntoLayer):
2883
2884 2011-09-26  Nat Duca  <nduca@chromium.org>
2885
2886         [chromium] Make CCThreadProxy draw
2887         https://bugs.webkit.org/show_bug.cgi?id=67417
2888
2889         Update the CCThreadProxy to correctly implement the CCProxy
2890         interface, do all the right committing and updating steps, and
2891         draw a picture on the screen.
2892
2893         Reviewed by James Robinson.
2894
2895         * platform/graphics/IntRect.h:
2896         * platform/graphics/chromium/LayerRendererChromium.cpp:
2897         (WebCore::LayerRendererChromium::~LayerRendererChromium):
2898         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
2899         (WebCore::CCHeadsUpDisplay::enabled):
2900         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
2901         (WebCore::CCLayerImpl::CCLayerImpl):
2902         (WebCore::CCLayerImpl::~CCLayerImpl):
2903         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
2904         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
2905         (WebCore::CCLayerTreeHost::commitTo):
2906         (WebCore::CCLayerTreeHost::commitComplete):
2907         (WebCore::CCLayerTreeHost::setNeedsRedraw):
2908         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
2909         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
2910         (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
2911         (WebCore::CCLayerTreeHostImpl::~CCLayerTreeHostImpl):
2912         * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
2913         (WebCore::CCSingleThreadProxy::finishAllRendering):
2914         (WebCore::CCSingleThreadProxy::setNeedsCommit):
2915         (WebCore::CCSingleThreadProxy::commitIfNeeded):
2916         * platform/graphics/chromium/cc/CCThreadProxy.cpp:
2917         (WebCore::CCThreadProxy::CCThreadProxy):
2918         (WebCore::CCThreadProxy::~CCThreadProxy):
2919         (WebCore::CCThreadProxy::compositeAndReadback):
2920         (WebCore::CCThreadProxy::drawLayersAndReadbackOnCCThread):
2921         (WebCore::CCThreadProxy::finishAllRendering):
2922         (WebCore::CCThreadProxy::isStarted):
2923         (WebCore::CCThreadProxy::setNeedsCommit):
2924         (WebCore::CCThreadProxy::setNeedsCommitAndRedraw):
2925         (WebCore::CCThreadProxy::setNeedsRedraw):
2926         (WebCore::CCThreadProxy::start):
2927         (WebCore::CCThreadProxy::stop):
2928         (WebCore::CCThreadProxy::finishAllRenderingOnCCThread):
2929         (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread):
2930         (WebCore::CCThreadProxy::beginFrameAndCommit):
2931         (WebCore::CCThreadProxy::commitOnCCThread):
2932         (WebCore::CCThreadProxy::scheduleDrawTaskOnCCThread):
2933         (WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread):
2934         (WebCore::CCThreadProxy::drawLayersOnCCThread):
2935         (WebCore::CCThreadProxy::updateSchedulerStateOnCCThread):
2936         * platform/graphics/chromium/cc/CCThreadProxy.h:
2937
2938 2011-09-26  Adam Klein  <adamk@chromium.org>
2939
2940         [MutationObservers] implement MutationRecord
2941         https://bugs.webkit.org/show_bug.cgi?id=68824
2942
2943         Reviewed by Darin Adler.
2944
2945         Implements MutationRecord as specified in the thread at
2946         http://lists.w3.org/Archives/Public/public-webapps/2011JulSep/1622.html,
2947         including some minor naming changes from the original proposal.
2948
2949         This is a small part of the MutationObserver API, see
2950         https://bugs.webkit.org/show_bug.cgi?id=68729 for the metabug covering
2951         this feature.
2952
2953         No new tests as this isn't yet exposed to the platform.
2954
2955         * CMakeLists.txt:
2956         * DerivedSources.cpp:
2957         * DerivedSources.make:
2958         * GNUmakefile.list.am:
2959         * WebCore.gypi:
2960         * WebCore.pro:
2961         * WebCore.vcproj/WebCore.vcproj:
2962         * WebCore.xcodeproj/project.pbxproj:
2963         * dom/MutationRecord.cpp: Added.
2964         (WebCore::MutationRecord::createChildList):
2965         (WebCore::MutationRecord::createAttributes):
2966         (WebCore::MutationRecord::createCharacterData):
2967         (WebCore::MutationRecord::MutationRecord):
2968         (WebCore::MutationRecord::~MutationRecord):
2969         * dom/MutationRecord.h: Added.
2970         (WebCore::MutationRecord::target):
2971         (WebCore::MutationRecord::addedNodes):
2972         (WebCore::MutationRecord::removedNodes):
2973         (WebCore::MutationRecord::previousSibling):
2974         (WebCore::MutationRecord::nextSibling):
2975         (WebCore::MutationRecord::attributeName):
2976         (WebCore::MutationRecord::attributeNamespace):
2977         (WebCore::MutationRecord::oldValue):
2978         (WebCore::MutationRecord::setOldValue):
2979         * dom/MutationRecord.idl: Added.
2980
2981 2011-09-26  Kentaro Hara  <haraken@chromium.org>
2982
2983         Implement a CloseEvent constructor for V8
2984         https://bugs.webkit.org/show_bug.cgi?id=68793
2985
2986         Reviewed by Adam Barth.
2987
2988         Test: fast/events/constructors/close-event-constructor.html
2989
2990         * bindings/v8/OptionsObject.cpp:
2991         (WebCore::OptionsObject::getKey): Just removed an extra space.
2992         (WebCore::OptionsObject::getKeyValue): Returns an unsigned short value corresponding to the given key.
2993         * bindings/v8/OptionsObject.h:
2994         * bindings/v8/custom/V8EventConstructors.cpp: Added the CloseEvent constructor.
2995         * websockets/CloseEvent.idl: Added a 'V8CustomConstructor' attribute.
2996
2997 2011-09-26  Nate Chapin  <japhet@chromium.org>
2998
2999         Clean up CachedResource::load(). Collapse its
3000         logic into a single callsite, taking just a
3001         CachedResourceLoader and a ResourceLoaderOptions.
3002
3003         1. Its 'incremental' parameter is redundant.
3004         2. With 'incremental' removed, the SecurityCheckPolicy is the only
3005            parameter difference between the CachedResource::load() variants.
3006            Making it a part of ResourceLoaderOptions removes yet another random
3007            enum that is passed around individually.
3008         3. We currently have to call setResourceLoaderOptions() before load() on a
3009            new CachedResource, so we should just take the ResourceLoaderOptions in load().
3010
3011         https://bugs.webkit.org/show_bug.cgi?id=67443
3012
3013         Reviewed by Antti Koivisto.
3014
3015         No new tests, refactor only.
3016
3017         * loader/DocumentThreadableLoader.cpp:
3018         * loader/FrameLoaderTypes.h: Move SecurityCheckPolicy to ResourceLoaderOptions.h.
3019         * loader/MainResourceLoader.cpp:
3020         * loader/NetscapePlugInStreamLoader.cpp:
3021         * loader/ResourceLoadScheduler.cpp:
3022         * loader/ResourceLoadScheduler.h:
3023         * loader/ResourceLoader.cpp: Enforce SecurityCheckPolicy here instead of SubresourceLoader.
3024         * loader/ResourceLoaderOptions.h: Store SecurityCheckPolicy on ResourceLoaderOptions.
3025         * loader/SubresourceLoader.cpp:
3026         * loader/SubresourceLoader.h:
3027         * loader/cache/CachedFont.cpp:
3028         * loader/cache/CachedFont.h:
3029         * loader/cache/CachedImage.cpp:
3030         * loader/cache/CachedImage.h:
3031         * loader/cache/CachedResource.cpp:
3032         * loader/cache/CachedResource.h:
3033         * loader/cache/CachedResourceLoader.cpp:
3034         (WebCore::defaultCachedResourceOptions): Define the default ResourceLoaderOptions for
3035             CachedResource loads here instead of as a default parameter on requestResource().
3036         * loader/cache/CachedResourceLoader.h:
3037         * loader/cache/CachedResourceRequest.cpp:
3038         (WebCore::CachedResourceRequest::didReceiveData): Remove m_incremental, since its purpose
3039             is already enforced in the data() implementation of every CachedResource that doesn't want
3040             incremental loads.
3041         * loader/cache/CachedResourceRequest.h:
3042
3043 2011-09-26  Joshua Bell  <jsbell@chromium.org>
3044
3045         IndexedDB: Second half of IDBFactory.getDatabaseNames implementation
3046         https://bugs.webkit.org/show_bug.cgi?id=68818
3047
3048         Reviewed by Tony Chang.
3049
3050         Test: storage/indexeddb/factory-basics.html
3051
3052         Adds ability to enumerate IndexedDB databases within an origin.
3053
3054         * bindings/v8/custom/V8IDBAnyCustom.cpp:
3055         (WebCore::toV8):
3056         * storage/IDBAny.cpp:
3057         (WebCore::IDBAny::domStringList):
3058         (WebCore::IDBAny::set):
3059         * storage/IDBAny.h:
3060         * storage/IDBBackingStore.h:
3061         * storage/IDBCallbacks.h:
3062         * storage/IDBFactory.cpp:
3063         (WebCore::IDBFactory::getDatabaseNames):
3064         * storage/IDBFactory.h:
3065         * storage/IDBFactory.idl:
3066         * storage/IDBFactoryBackendImpl.cpp:
3067         (WebCore::IDBFactoryBackendImpl::getDatabaseNames):
3068         (WebCore::IDBFactoryBackendImpl::open):
3069         (WebCore::IDBFactoryBackendImpl::openBackingStore):
3070         * storage/IDBFactoryBackendImpl.h:
3071         * storage/IDBFactoryBackendInterface.h:
3072         * storage/IDBLevelDBBackingStore.cpp:
3073         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
3074         (WebCore::IDBLevelDBBackingStore::getObjectStores):
3075         (WebCore::IDBLevelDBBackingStore::getIndexes):
3076         * storage/IDBLevelDBBackingStore.h:
3077         * storage/IDBLevelDBCoding.cpp:
3078         (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeMinKeyForOrigin):
3079         (WebCore::IDBLevelDBCoding::DatabaseNameKey::encodeStopKeyForOrigin):
3080         * storage/IDBLevelDBCoding.h:
3081         * storage/IDBRequest.cpp:
3082         (WebCore::IDBRequest::onSuccess):
3083         * storage/IDBRequest.h:
3084         * storage/IDBSQLiteBackingStore.cpp:
3085         (WebCore::IDBSQLiteBackingStore::getDatabaseNames):
3086         * storage/IDBSQLiteBackingStore.h:
3087
3088 2011-09-26  Tim Horton  <timothy_horton@apple.com>
3089
3090         <animateColor> applied to filtered ellipse does not update
3091         https://bugs.webkit.org/show_bug.cgi?id=68457
3092         <rdar://problem/10154777>
3093
3094         Reviewed by Darin Adler.
3095
3096         Invalidate the filter's cache when style changes take place so that style changes are respected.
3097
3098         Test: svg/filters/animate-fill.svg
3099
3100         * rendering/svg/SVGResourcesCache.cpp:
3101         (WebCore::SVGResourcesCache::clientStyleChanged):
3102         (WebCore::SVGResourcesCache::clientUpdatedFromElement):
3103
3104 2011-09-26  Max Perepelitsyn  <pph34r@gmail.com>
3105
3106         Set but unused variables cleanup in v8 bindings (gcc 4.6)
3107         https://bugs.webkit.org/show_bug.cgi?id=68079
3108
3109         Reviewed by Adam Barth.
3110
3111         Test: http/tests/websocket/tests/hybi/send-object-tostring-check.html
3112
3113         * bindings/scripts/CodeGeneratorV8.pm:
3114         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3115         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
3116         * bindings/scripts/test/V8/V8TestObj.cpp:
3117         (WebCore::ConfigureV8TestObjTemplate):
3118         * bindings/v8/WorkerScriptDebugServer.cpp:
3119         (WebCore::WorkerScriptDebugServer::addListener):
3120         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3121         (WebCore::V8HTMLOptionsCollection::lengthAccessorSetter):
3122         * bindings/v8/custom/V8WebSocketCustom.cpp:
3123         (WebCore::V8WebSocket::sendCallback):
3124
3125 2011-09-26  Tony Chang  <tony@chromium.org>
3126
3127         switch the initial value of flex-order to 0
3128         https://bugs.webkit.org/show_bug.cgi?id=68820
3129
3130         The spec changed from having an initial value of 1 to 0.
3131
3132         Reviewed by Ojan Vafai.
3133
3134         * rendering/style/RenderStyle.h:
3135         (WebCore::InheritedFlags::initialFlexOrder):
3136
3137 2011-09-26  Chris Rogers  <crogers@google.com>
3138
3139         OfflineAudioDestinationNode must wait for thread completion in uninitialize()
3140         https://bugs.webkit.org/show_bug.cgi?id=68725
3141
3142         Reviewed by Kenneth Russell.
3143
3144         No new tests.  This fixes internal implementation details.
3145
3146         * webaudio/OfflineAudioDestinationNode.cpp:
3147         (WebCore::OfflineAudioDestinationNode::uninitialize):
3148
3149 2011-09-26  Xan Lopez  <xlopez@igalia.com>
3150
3151         [GTK] Do not ignore 'Replaceable' attributes in the DOM bindings
3152         https://bugs.webkit.org/show_bug.cgi?id=68837
3153
3154         Reviewed by Martin Robinson.
3155
3156         * bindings/scripts/CodeGeneratorGObject.pm: add getters (but not
3157         setters) for 'Replaceable' attributes. Punt for the future
3158         actually making them settable, since it seems non trivial.
3159
3160 2011-09-26  Ryosuke Niwa  <rniwa@webkit.org>
3161
3162         Leopard build fix.
3163
3164         * testing/Internals.cpp:
3165         (WebCore::Internals::setZoomAnimatorTransform):
3166
3167 2011-09-26  Joshua Bell  <jsbell@chromium.org>
3168
3169         IndexedDB: Null key path gets stored as empty string key path
3170         https://bugs.webkit.org/show_bug.cgi?id=68726
3171
3172         Reviewed by Tony Chang.
3173
3174         Store additional flag to indicate if object store key path
3175         is null vs. empty. Added additional runtime tests for integrity
3176         of object store metadata.
3177
3178         * storage/IDBLevelDBBackingStore.cpp:
3179         (WebCore::checkObjectStoreAndMetaDataType):
3180         (WebCore::IDBLevelDBBackingStore::getObjectStores):
3181         (WebCore::IDBLevelDBBackingStore::createObjectStore):
3182         * storage/IDBLevelDBCoding.cpp:
3183
3184 2011-09-26  John Bauman  <jbauman@chromium.org>
3185
3186         Fix nonpremultiplied webgl toDataURL to jpeg
3187         https://bugs.webkit.org/show_bug.cgi?id=68366
3188
3189         The canvas spec says that toDataURL to formats without an alpha must
3190         be "composited onto a solid black background using the source-over
3191         operator." Do that.
3192
3193         Reviewed by Kenneth Russell.
3194
3195         * platform/graphics/cg/ImageBufferCG.cpp:
3196         (WebCore::CGImageToDataURL):
3197         (WebCore::ImageBuffer::toDataURL):
3198         (WebCore::ImageDataToDataURL):
3199         * platform/image-encoders/skia/JPEGImageEncoder.cpp:
3200         (WebCore::RGBAtoRGB):
3201
3202 2011-09-26  Raphael Kubo da Costa  <kubo@profusion.mobi>
3203
3204         [CMake] Remove FindFreetype.cmake
3205         https://bugs.webkit.org/show_bug.cgi?id=68778
3206
3207         Reviewed by Adam Barth.
3208
3209         CMake has provided its own FindFreetype.cmake forever, so there is no
3210         need to have another implementation in WebKit.
3211
3212         No new tests, just a buildsystem change.
3213
3214         * CMakeListsEfl.txt: Use FREETYPE_{LIBRARIES,INCLUDE_DIRS} instead of
3215         Freetype_{LIBRARIES,INCLUDE_DIRS}.
3216
3217 2011-09-26  Alexei Svitkine  <asvitkine@chromium.org>
3218
3219         Fix full-page rubber band overhang appearing when gesturing during a slow page load.
3220         https://bugs.webkit.org/show_bug.cgi?id=68568
3221
3222         Chromium bug: http://code.google.com/p/chromium/issues/detail?id=97243
3223
3224         (This also happens on Safari.)
3225
3226         The problem was that ScrollView::overhangAmount() was returning a full-page overhang due to contentsSize() being 0 briefly during a page load, which was then getting used by ScrollAnimatorChromiumMac.mm to update the overhang on a gesture event. This change makes the relevant logic not return an overhang if the contentsSize() is empty.
3227
3228         Reviewed by Adam Barth.
3229
3230         No new tests, since this is highly timing-related.
3231
3232         * platform/ScrollView.cpp:
3233         (WebCore::ScrollView::overhangAmount):
3234         (WebCore::ScrollView::wheelEvent):
3235
3236 2011-09-26  W. James MacLean  <wjmaclean@chromium.org>
3237
3238         [chromium] Revise zoom animator backend to use full transform instead of just scale.
3239         https://bugs.webkit.org/show_bug.cgi?id=68535
3240
3241         Reviewed by Kenneth Russell.
3242
3243         * page/Settings.cpp:
3244         (WebCore::Settings::Settings):
3245         * page/Settings.h:
3246         (WebCore::Settings::setZoomAnimatorScale):
3247         (WebCore::Settings::zoomAnimatorScale):
3248         (WebCore::Settings::setZoomAnimatorPosition):
3249         (WebCore::Settings::zoomAnimatorPosX):
3250         (WebCore::Settings::zoomAnimatorPosY):
3251         * platform/graphics/chromium/LayerRendererChromium.cpp:
3252         (WebCore::LayerRendererChromium::LayerRendererChromium):
3253         (WebCore::LayerRendererChromium::drawLayersInternal):
3254         * platform/graphics/chromium/LayerRendererChromium.h:
3255         (WebCore::LayerRendererChromium::setZoomAnimatorTransform):
3256         * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
3257         (WebCore::CCLayerTreeHost::CCLayerTreeHost):
3258         (WebCore::CCLayerTreeHost::commitTo):
3259         (WebCore::CCLayerTreeHost::setZoomAnimatorTransform):
3260         (WebCore::CCLayerTreeHost::updateLayers):
3261         * platform/graphics/chromium/cc/CCLayerTreeHost.h:
3262         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
3263         (WebCore::CCLayerTreeHostImpl::setZoomAnimatorTransform):
3264         * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
3265         * testing/Internals.cpp:
3266         (WebCore::Internals::setZoomAnimatorTransform):
3267         * testing/Internals.h:
3268         * testing/Internals.idl:
3269
3270 2011-09-26  Dan Bernstein  <mitz@apple.com>
3271
3272         REGRESSION (r95926) Assert firing in svg/clip-path/clip-path-on-svg.svg
3273         https://bugs.webkit.org/show_bug.cgi?id=68819
3274
3275         Reviewed by Dave Hyatt.
3276
3277         * rendering/RenderObject.cpp:
3278         (WebCore::RenderObject::scheduleRelayout): Revert to using view() instead of the RenderView**
3279         parameter of isRooted, since only the former returns 0 when the document is detached.
3280
3281 2011-09-26  Vsevolod Vlasov  <vsevik@chromium.org>
3282
3283         Web Inspector: XMLHttpRequest console logging messages should link to network panel when possible.
3284         https://bugs.webkit.org/show_bug.cgi?id=67399
3285
3286         Reviewed by Pavel Feldman.
3287
3288         * inspector/ConsoleMessage.cpp:
3289         (WebCore::ConsoleMessage::ConsoleMessage):
3290         * inspector/ConsoleMessage.h:
3291         * inspector/InspectorConsoleAgent.cpp:
3292         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
3293         * inspector/InspectorConsoleAgent.h:
3294         * inspector/InspectorInstrumentation.cpp:
3295         (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl):
3296         * inspector/front-end/ConsoleMessage.js:
3297         (WebInspector.ConsoleMessage.prototype._formatMessage.else.else.linkifier):
3298         (WebInspector.ConsoleMessage.prototype._formatMessage):
3299         * inspector/front-end/ResourcesPanel.js:
3300         (WebInspector.ResourcesPanel.prototype.showAnchorLocation):
3301         * inspector/front-end/inspector.js:
3302         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
3303         (WebInspector.linkifyStringAsFragment):
3304
3305 2011-09-26  Jer Noble  <jer.noble@apple.com>
3306
3307         White flash when entering full-screen using element.webkitRequestFullScreen()
3308         https://bugs.webkit.org/show_bug.cgi?id=68481
3309
3310         Reviewed by Simon Fraser.
3311
3312         No new tests; covered by existing full screen tests.
3313
3314         During an animation, renderers may try to paint into the FullScreenRenderer's 
3315         GraphicsLayer, and an optimization we previously added for the FullScreenRenderer's 
3316         background will cause these paints to fail. Remove this optimization in 
3317         containsPaintedContent, and taking non-composited elements into full screen will
3318         animate correctly.
3319
3320         * rendering/RenderLayerBacking.cpp:
3321         (WebCore::RenderLayerBacking::containsPaintedContent):
3322
3323 2011-09-26  Mihai Parparita  <mihaip@chromium.org>
3324
3325         Unreviewed, rolling out r95960.
3326         http://trac.webkit.org/changeset/95960
3327         https://bugs.webkit.org/show_bug.cgi?id=58608
3328
3329         Significantly changes table border rendering
3330
3331         * rendering/RenderObject.cpp:
3332         (WebCore::RenderObject::drawLineForBoxSide):
3333
3334 2011-09-23  Simon Fraser  <simon.fraser@apple.com>
3335
3336         Repaint tests don't work in WebKit2
3337         https://bugs.webkit.org/show_bug.cgi?id=68453
3338
3339         Reviewed by Sam Weinig.
3340
3341         Have FrameView keep track of repaint rects when asked to, and
3342         expose this set of repaint rects via private WebKit API for later
3343         use by DumpRenderTree.
3344         
3345         The repaint rects are in WebView coordinates, so we have to
3346         unapply the scroll offset.
3347
3348         * WebCore.exp.in:
3349         * page/FrameView.cpp:
3350         (WebCore::FrameView::FrameView):
3351         (WebCore::FrameView::reset):
3352         (WebCore::FrameView::repaintContentRectangle):
3353         (WebCore::FrameView::setTracksRepaints):
3354         * page/FrameView.h:
3355         (WebCore::FrameView::isTrackingRepaints):
3356         (WebCore::FrameView::resetTrackedRepaints):
3357         (WebCore::FrameView::trackedRepaintRects):
3358
3359 2011-09-26  Antti Koivisto  <antti@apple.com>
3360
3361         Optimize matching of common pseudo classes
3362         https://bugs.webkit.org/show_bug.cgi?id=68633
3363
3364         Reviewed by Dave Hyatt, Darin Adler, Dimitri Glazkov.
3365         
3366         :link, :visited and :focus are quite common. They often used as univeral selectors (including in our
3367         default stylesheet) so we try to match them for all elements in the document. They take always the 
3368         slow matching path. In addition we match link styles twice due to visited link pseudo style generation
3369         so the overhead is doubled. As a result substantial portion of our style matching time is spent 
3370         dealing with these pseudo classes. 
3371         
3372         This patch adds new lists to RuleSet for common pseudo class rules. The rules on the lists are only checked
3373         if the element has approprate type and stat. ases where the rightmost pseudo class can then be rejected immediately.
3374         We can also enable the fast path checking for the rest of the selector in many cases.
3375     
3376         This seems to be >30% progression in selector matching performance with typical style sheets. It saves ~0.9s
3377         when loading the full HTML5 spec.
3378
3379         * css/CSSStyleSelector.cpp:
3380         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
3381         (WebCore::RuleSet::idRules):
3382         (WebCore::RuleSet::classRules):
3383         (WebCore::RuleSet::tagRules):
3384         (WebCore::RuleSet::shadowPseudoElementRules):
3385         (WebCore::RuleSet::linkPseudoClassRules):
3386         (WebCore::RuleSet::visitedPseudoClassRules):
3387         (WebCore::RuleSet::focusPseudoClassRules):
3388         (WebCore::RuleSet::universalRules):
3389         (WebCore::RuleSet::pageRules):
3390         
3391             Add a new lists, some stylistic renamings.
3392     
3393         (WebCore::CSSStyleSelector::matchRules):
3394         
3395             New link and focus checks.
3396
3397         (WebCore::CSSStyleSelector::matchRulesForList):
3398         (WebCore::CSSStyleSelector::checkSelector):
3399         
3400             Inline the rightmost selector tag checking, skip if unnecessary.
3401         
3402         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
3403         
3404             Common pseudo classes now match based on early filtering (though it is not a hash in this case).
3405
3406         (WebCore::RuleData::RuleData):
3407         (WebCore::RuleSet::~RuleSet):
3408         (WebCore::RuleSet::addRule):
3409         
3410             Sort pseudo classes to new lists.
3411         
3412         (WebCore::RuleSet::collectFeatures):
3413         (WebCore::RuleSet::shrinkToFit):
3414         (WebCore::CSSStyleSelector::matchPageRules):
3415         * css/SelectorChecker.cpp:
3416         (WebCore::SelectorChecker::checkSelector):
3417         
3418             Adopt to expanded fast path (this is used by querySelectorAll).
3419
3420         (WebCore::SelectorChecker::fastCheckRightmostSelector):
3421         (WebCore::SelectorChecker::fastCheckSelector):
3422         
3423             Rightmost selector is now checked differently than the rest. RuleSet based selection in CSSStyleSelector
3424             is equivalent to fastCheckRightmostSelector().
3425         
3426         (WebCore::isFastCheckableRelation):
3427         (WebCore::isFastCheckableMatch):
3428         (WebCore::isFastCheckableRightmostSelector):
3429         (WebCore::SelectorChecker::isFastCheckableSelector):
3430         (WebCore::SelectorChecker::checkOneSelector):
3431         (WebCore::SelectorChecker::commonPseudoClassSelectorMatches):
3432         (WebCore::SelectorChecker::isFrameFocused):
3433         * css/SelectorChecker.h:
3434         (WebCore::SelectorChecker::isCommonPseudoClassSelector):
3435         (WebCore::SelectorChecker::linkMatchesVisitedPseudoClass):
3436         (WebCore::SelectorChecker::matchesFocusPseudoClass):
3437         (WebCore::SelectorChecker::tagMatches):
3438         
3439             Refactor a bunch of shared checks into functions.
3440
3441 2011-09-12  Ryosuke Niwa  <rniwa@webkit.org>
3442
3443         REGRESSION(r74971): Selection doesn't work correctly in BiDi Text
3444         https://bugs.webkit.org/show_bug.cgi?id=57340
3445
3446         Reviewed by Eric Seidel.
3447
3448         This patch adds the end point adjustment mechanism at bidi boundaries similar to the one NSTextView implements.
3449
3450         To understand the problem, suppose we have strong RTL letters "ABC" in a LTR block (visually laid out as CBA).
3451
3452         Per NSTextView convention, logical offsets between each letter is placed as (0)C(2)B(1)A(3). In other words,
3453         placing the caret visually on the left of CBA yields the position inside the text node of "ABC" at offset 0.
3454         Likewise, placing it between C and B yields ("ABC", 2), and placing it on the right of CBA yields ("ABC", 3).
3455
3456         Now suppose a user attempts to select the letter A by a mouse drag from the right of CBA to a point between
3457         B and A. First, the initial mouse down places the selection's base at ("ABC", 3). Then as the mouse pointer
3458         moves to a point on the left of A, the selection's extent is set at ("ABC", 1), selecting "BC".
3459
3460         To mitigate this issue, NSTextView adjusts selection base and extent under certain conditions. In the above
3461         example, NSTextView detects user's intent and changes the selection's base to ("ABC", 0) temporarily.