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