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