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