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