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